gin框架中模板的加载
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
"os"
"path/filepath"
)
func main() {
router := gin.Default()
// 加载指定目录下的所有文件
//router.LoadHTMLGlob("C:/Users/mayanan/Desktop/pro_go/goRPC/gin_start/09_gin返回html/templates/*")
// 为什么我们通过golan运行go的时候并没有生成main.exe
// 注意:相对路径是相对于项目根目录的路径,而不是当对于当前main文件的路径
dir, _ := filepath.Abs(filepath.Dir(os.Args[0]))
fmt.Println(dir)
// 1. 加载指定文件
//router.LoadHTMLFiles("templates/index.tmpl")
// 2. 加载目录下所有文件
//router.LoadHTMLGlob("templates/*")
// 3. 加载多级目录下的相同文件, 注意加载多级目录下的相同文件,需要的模板文件中加入define 和 end标签
router.LoadHTMLGlob("templates/**/*")
// 如果没有在模板文件中定义define,那么我们就可以使用文件名称来找
// 如果不同目录下有相同的文件名,那么就必须在模板文件中是使用define定义来区分相同文件
router.GET("/goods/list", func(context *gin.Context) {
context.HTML(http.StatusOK, "goods/list.tmpl", gin.H{
"title": "慕课网",
})
})
router.GET("/users/list", func(context *gin.Context) {
context.HTML(http.StatusOK, "users/list.tmpl", gin.H{
"title": "慕课网",
})
})
router.GET("/index", func(context *gin.Context) {
context.HTML(http.StatusOK, "index.tmpl", gin.H{
"title": "首页",
})
})
router.Run()
}
注意因为使用了模板,当启动go程序的时候从goland的终端启动,不要直接通过goland的右键运行启动
gin/html源码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)