gin: 使用模板:包含header和footer
一,go代码:
目录结构:

routes
package routes
import (
"github.com/gin-gonic/gin"
"mediabank/controller"
)
func Routes() *gin.Engine {
router := gin.Default()
// 1. 加载模板文件
router.LoadHTMLGlob("templates/**/*.html")
//media
media := controller.NewMediaController()
mediaGroup := router.Group("/media")
{
mediaGroup.GET("/detail", media.Detail)
mediaGroup.GET("/list", media.List)
}
return router
}
controller
package controller
import (
"github.com/gin-gonic/gin"
)
type MediaController struct{}
func NewMediaController() MediaController {
return MediaController{}
}
//得到详情
func (ic *MediaController) Detail(c *gin.Context) {
c.HTML(200, "detail.html", gin.H{
"Title": "Gin 模板示例",
"Message": "欢迎来到 Gin 的世界!",
})
}
//得到列表
func (ic *MediaController) List(c *gin.Context) {
var data = gin.H{
"Title": "Gin 列表示例",
"Message": "欢迎来到Gin 列表!",
}
c.HTML(200, "list.html", data)
}
二,html代码
detail
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ .Title }}</title>
</head>
<body>
<h1>{{ .Message }}</h1>
</body>
</html>
list
{{template "public/header" .}}
<main style="background:#ffff00;width:100%;text-align: center;">
<h1>{{.Title}}</h1>
<h2>{{ .Message }}</h2>
</main>
{{template "public/footer" .}}
header
{{define "public/header"}}
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>素材管理系统</title>
</head>
<body>
<header style="width: 100%;text-align: center;background: #ff00ff;"><h2>这里是header</h2></header>
{{end}}
footer
{{define "public/footer"}}
<footer style="width: 100%;text-align: center;background: #ff0000;"><h2>这里是footer</h2></footer>
</body>
</html>
{{end}}
三,测试效果:
detail

list

浙公网安备 33010602011771号