Golang
Gin HTML渲染
首先我們需要在程式碼所在的資料夾下,建立一個view的資料夾,並且在該資料夾下建立一個簡單的html檔案。
<html>
<h1>
{{ .title }}
</h1>
</html>
這個{{ }} 應該不陌生啦!
使用 LoadHTMLGlob ()來讀取html所在的位置(所以LoadHTMLGlob所指定的資料夾名稱需要跟自己建立的相同),c.HTML 所指定hello.html必須是要跟html檔案相呼應。
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.LoadHTMLGlob("view/*")
router.GET("/index", func(c *gin.Context) {
c.HTML(http.StatusOK, "hello.html", gin.H{
"title": "hello~ html",
})
})
router.Run(":8000")
}
我們也可以有多層結構的做法router.LoadHTMLGlob("templates/**/*")
當然route也可以做多個來使用囉
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.LoadHTMLGlob("view/**/*")
router.GET("/index", func(c *gin.Context) {
c.HTML(http.StatusOK, "users/user.html", gin.H{
"title": "hello",
})
})
router.GET("/users/index2", func(c *gin.Context) {
c.HTML(http.StatusOK, "users/user.html", gin.H{
"title": "Users",
})
})
router.Run(":8000")
}
但這邊要注意的是如果有用多層的話,HTML的內容需要調整一下
必須要加上,要特別注意的是他是開頭跟結尾夾著,這部分我一開始沒注意到有結尾的end,導致跑不出來。缺一不可唷{{ define "users/user.html" }} …. {{ end }}
否則會報錯唷
參考如下:
{{ define "users/user.html" }}
<html>
<h1>
{{ .title }} user
</h1>
</html>
{{ end }}