Go语言 尝试从不同的目录级别访问footer.html时,页面为空

vojdkbi0  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(76)

发行详情

我用的是Go语言
尝试从不同的目录级别访问footer.html时,页面为空

我的文件夹结构如下

Go
   static
       css
           main.css
   templates
       front
           home
               home.html
           footer.html
   main.go

字符串

main.go代码

func homeHandler(w http.ResponseWriter, r *http.Request) {
    templates = template.Must(template.ParseGlob("templates/front/home/*.html"))
    templates.ExecuteTemplate(w, "home.html", nil)
}


联系我们

{{template "footer.html"}}

vsnjm48y

vsnjm48y1#

参见“Go template name”:template.Template值可以是(并且通常是)* 多个 * 相关联的模板的集合。
由于footer.html不在home文件夹中,而是直接在front父文件夹中,因此您也需要解析它,以获得其名称(footer.html)。
例如,在“How to Render multiple templates”中说明了这一点。

func homeHandler(w http.ResponseWriter, r *http.Request) {
    templates = template.Must(template.ParseGlob("templates/front/home/*.html"))
    templates = template.Must(templates.ParseGlob("templates/front/*.html"))
    templates.ExecuteTemplate(w, "home.html", nil)
}

字符串
第二个ParseGlob()应用于Template对象templates,而不是包名template
我会选择一个不同的名称,如websiteTemplates,以避免与包名称混淆。
然后你的HTML文件应该工作

{{template "footer.html"}}

相关问题