提取公共部分
1.header.html
{{define "header"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<span>ddddd</span>
{{end}}
2.footer.html
{{define "footer"}}
<span>end</span>
</body>
</html>
{{end}}
注意:define部分只写文件的名字,不加路径和后缀名
使用不同路径下但相同文件名的模板
func main() {
router := gin.Default()
router.LoadHTMLGlob("views/**/*")
router.GET("/main/newlist", func(c *gin.Context) {
c.HTML(http.StatusOK, "main/newlist.html",gin.H{
"title": "Posts",
})
})
router.GET("/users/index", func(c *gin.Context) {
c.HTML(http.StatusOK, "users/index.tmpl",gin.H{
"title": "Users",
})
})
router.Run(":8080")
}
其上代码分别引用了views文件夹下的posts文件夹和users文件夹。在HTML文件中的写发如下:
{{define "main/newlist.html"}}
{{template "header" .}}
<div>middle</div>
{{template "footer" }}
{{end}}
注意:在define中HTML文件的路径和后缀名都必须加上,跟引用公共模板正好相反。