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 中內容,然後將模板中新增佔位符來顯示傳入的資料,{{.}}代表全部。


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


早上好!
