golang gin框架 html模板布局layout 使用block块继承 最新完美版
最近需要gin框架使用html模板开发几个界面
在网上找了一遍gin框架使用模板layout布局,block继承的相关资料,一无所获,基本都是使用html自带的包通过解析文件最原始的方式使用的,要不就是gin框架中转换成原始的方式,于是就自己琢磨,怎样才能使用gin框架完美的使用到html的layout模板布局,结合其他语言的模板基础方式,突然灵光一闪,想到了下面这种方式,废话不多说,直接上代码
demo简单布局,使用的go mod 模式,gin-html.go 主文件与views文件夹在同一目录
gin-html.go代码,首先需要指定加载模板的目录,正常的使用gin框架的HTML响应模板和传递变量(这里坐到了完美兼容,网上很多资料都不是这样的,没有坐到真正的完美兼容)
packagemain
import(
"github.com/gin-gonic/gin"
"net/http"
)
funcmain(){
router := gin.Default()
//指定模板加载目录
router.LoadHTMLGlob("views/**/*")
router.GET("/",func(context *gin.Context){
context.HTML(http.StatusOK,"index/index.html",gin.H{
"title":"main.html title",
"content_before":"content 内容上部分",
"content_text":"content 内容部分",
"content_after":"content 内容下部分",
})
})
router.Run(":8000")
}
views/layout/main.html代码
{{define "layout/main.html"}}
{{.title}}
{{/* 自定义style*/}}
{{block "styles" .}}{{end}}
{{.content_before}}
{{/*content内容部分*/}}
{{block "content" .}}{{end}}
{{.content_after}}
{{/*自定义script*/}}
{{block "scripts" .}}{{end}}
{{end}}
views/index/index.html代码
{{define "index/index.html"}}
{{/*继承main.html*/}}
{{template "layout/main.html" .}}
{{end}}
{{define "content"}}
{{.content_text}}
{{end}}
{{define "styles"}}
.c{
color: red;
font-size:32px;
}
{{end}}
{{define "scripts"}}
console.log("script继承部分")
{{end}}
启动运行,结果界面
鉴于网上找了很多资料都没有这方面的介绍,特意分享给大家,避免大家走弯路,如果有需要beego 通用后台系统的,请点击这里,或直接访问github地址beego-admin
有疑问加站长微信联系(非本文作者)