2
這是我的目錄結構:Golang:解析目錄和子目錄中的所有模板?
app/
template/
layout/
base.tmpl
index.tmpl
template.ParseGlob("*/*.tmpl")
解析index.tmpl
但不base.tmpl
在layout
子目錄。有沒有辦法解析所有模板遞歸?
這是我的目錄結構:Golang:解析目錄和子目錄中的所有模板?
app/
template/
layout/
base.tmpl
index.tmpl
template.ParseGlob("*/*.tmpl")
解析index.tmpl
但不base.tmpl
在layout
子目錄。有沒有辦法解析所有模板遞歸?
不是沒有實現自己的函數來做到這一點,我一直在使用這樣的
func ParseTemplates() *template.Template {
templ := template.New("")
err := filepath.Walk("./views", func(path string, info os.FileInfo, err error) error {
if strings.Contains(path, ".html") {
_, err = templ.ParseFiles(path)
if err != nil {
log.Println(err)
}
}
return err
})
if err != nil {
panic(err)
}
return templ
}
某事,這將解析所有的模板,那麼你可以通過調用例如他們的名字使它們
template.ExecuteTemplate(w, "home", nil)
這樣的恥辱不在標準庫中。不過,這並不難實現。 – sargas
的可能的複製[子目錄中可以template.ParseGlob()解析模板?](http://stackoverflow.com/questions/32309830/can-template-parseglob-parse-templates-in-subdirectories ) – icza
@icza我同意可能的重複,但它不完全提供瞭如何解決這個問題的答案,這可能是這些重複問題出現的原因。 – Datsik