golang 開發後端基礎(2)

我們看一下 home.html 文件,在 index 中我們引入 style.css 作爲樣式表來控制頁面的顯示。將 style.css 放置 public/css 目錄下。

運行程序,我們沒有看到頁面有任何的變化,說明樣式沒有成功加載。看一下是什麼原因,打開控制檯,看一下有關 style.css 的加載的信息,發現 html 加載 content type 爲 text/html ,這個沒有問題,而 css 的 content type 也是 text/plain 而不是 text/css 。所以沒有識別出樣式,我們來嘗試解決一下這個問題。

在之前代碼的基礎之上,我們添加名稱 contentType 的 string 類型變量,讓他接受類型, 然後根據文件擴展名來給出不同的 contentType 表示加載不同類型的文件,大家注意一下, css 文件類型 contentType 應爲 text/css。

在 style.css 中給 body背景色爲藍色,以便清楚查看樣式是否加載成功。

這一次運行程序,發現頁面背景色變爲藍色說明已經成功地加載了 css 文件並解析他。

接下來爲了提高性能,我們用 buffer 來讀取文件,這次只是讀取文件方式不同,其他內容不變。大家可以看一下

修改項目結構,在 src 下添加一個名字爲 main 文件夾,然後將 main.go 文件放到這個文件夾下。目的是爲了讓項目結構看起來更清晰。

刪除 main.go 文件中的原有的代碼,重新寫一下。這一次我們使用 http.Dir 來直接讀取服務端的目錄結構,可以通過 http 訪問服務端的文件夾以及其內容。有點像打開svn 服務

好到現在爲止,我們對用 go 寫 web 應用有一定的瞭解,不過現在渲染的界面都是靜態的界面,接下來我們來通過模板的形式來動態地給用戶展示頁面,先看以一個簡單的示例。

這裏新建一個模板,可以給模板起任意的名稱,然後解析 html 字符串。tmpl 執行模板時,第二個參數我們給 nil 第二參數是往模板裏傳的數據。

現在就完成了動態模板功能,在上面的代碼基礎上進行修改,將 Execute 第二個參數替換爲 url 中內容,然後往模板中添加一些佔位符,來顯示將要傳入的數據,{{.}} 代表全部。

接下里代碼很多,看上去有點複雜,其實很好懂,我就不做過多的解釋了,大家自己看吧。我已經把需要看的內容標記出來

早上好!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章