Gin框架實戰——HTML渲染
最近使用Go的Gin框架做了個簡單的前端網頁,記錄一下細節~
1.加載靜態檔案
由于網頁需要使用css、圖片等渲染,而靜態檔案必須先宣告:否則模板中呼叫加載不出來,這個很重要,即使你把檔案放到對應路徑下,html中也寫了相應的路徑,但是開啟go服務端的網頁,會顯示不出來樣式、圖片等,因此需要加載靜態檔案,
//Default回傳一個默認的路由 r := gin.Default() r.StaticFS("/public", http.Dir("D:\\Gotest\\web1\\web\\static")) //相當于更換路徑,加載靜態檔案 r.StaticFS("/fonts", http.Dir("D:\\Gotest\\web1\\web\\static\\fonts")) //相當于更換路徑,加載靜態檔案 /* 設定靜態檔案夾系結:
r.Static(路由,靜態檔案夾)另外一種寫法:r.StaticFS("/static"路由,http.Dir("static")資源)
設定單個靜態檔案: r.StaticFile(路由,資源) */
eg:
router := gin.Default()
router.Static("/assets", "./assets")
router.StaticFS("/more_static", http.Dir("my_file_system"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
這里的加載資源,我的理解是更換路徑,本地的檔案路徑,換成工程里設定的路徑,
有兩種方式:①r.Static(路由,靜態檔案夾)另外一種寫法:r.StaticFS("/static"路由,http.Dir("static")資源)
這種方法是加載一個檔案下所有的檔案,但是不加載檔案里子檔案的內容,如使用
r.StaticFS("/public",http.Dir(./static))
加載下圖的static檔案夾下的檔案,main.css、admin_login.css、common.css可以使用public/main.css路徑代替原有路徑,然后public/fonts檔案貌似里面的內容加載不出來,所以,不知道是不是我的問題,我認為是只能加載檔案夾下的檔案,而不能加載檔案夾下檔案里面的檔案(不能遞回),
使用router.StaticFile("/favicon.ico", "./resources/favicon.ico")加載單個檔案,就是那個檔案的路徑換成StaticFile函式里第一個引數的路徑即可,

2.HTML渲染
使用LoadHTMLGlob加載html檔案,使用get/post方法從html檔案里獲取前端資料,

controller.IndexController函式為:
func IndexController(c *gin.Context) { c.HTML(http.StatusOK, "login.html", gin.H{ "Title": "開元十年", }) }
這個函式表示為,http的狀態碼為StatusOK時,加載login.html檔案,效果圖為:

參考文章:
https://zhuanlan.zhihu.com/p/484462011
https://blog.csdn.net/m764395448/article/details/109113426?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167371151716800213068248%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167371151716800213068248&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-109113426-null-null.142^v71^pc_new_rank,201^v4^add_ask&utm_term=gin%E6%A1%86%E6%9E%B6&spm=1018.2226.3001.4187
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/542695.html
標籤:其他
下一篇:1.編程初步
