[GIN-debug] [WARNING] Since SetHTMLTemplate() is NOT thread-safe. It should only be called
at initialization. ie. before any route is registered or the router is listening in a socket:
router := gin.Default()
router.SetHTMLTemplate(template) // << good place
Gin和Echo有点不一样,需要在注册路由之前注册模板
注册子目录的html文件
├── go.mod
├── go.sum
├── app.go
├── resources
│ ├── css
│ │ └── input.css
│ ├── js
│ │ └── tailwind.config.js
│ └── views
│ ├── detail.html
│ ├── home
│ │ └── home.index.html
│ └── search.html
func walkDir(fileSystem embed.FS, path string) {
_, err := T.ParseFS(fileSystem, path+"/*.html")
if err != nil {
panic(fmt.Sprintf("parse error:%s", err.Error()))
}
entries, _ := fs.ReadDir(fileSystem, path)
for _, entry := range entries {
if entry.IsDir() {
walkDir(fileSystem, path+"/"+entry.Name())
}
}
}
T:=template.New("view")
T.ParseFS(ResourcesFS, "resources/views/*.html")
entries, _ := ResourcesFS.ReadDir("resources/views")
for _, entry := range entries {
if entry.IsDir() {
walkDir(ResourcesFS, "resources/views/"+entry.Name())
}
}