gpt4 book ai didi

templates - 告诉 Golang 先执行哪个模板

转载 作者:IT王子 更新时间:2023-10-29 02:22:13 26 4
gpt4 key购买 nike

我在 golang 中有一个包含不同模板的文件夹。主模板是main.html,还有一个footer.htmlheader.html。页脚和页眉加载

{{template "footer.html" .}} 

main.html 中。

我正在用它来解析文件

templates, _ := template.ParseGlob("Templates/" + template_name + "/*.html")

因为还使用了其他具有不同文件名的目录。所以我不想使用 parseFiles

但是,显示的模板始终是按字母顺序排列的第一个模板,例如footer.html。如果我将 main.html 重命名为 a.html,模板就会按照我想要的方式显示(因此加载主模板并在其中执行页脚和页眉)。

我找不到任何文档来告诉 golang 首先使用哪个模板。有办法吗?

最佳答案

知道一个template.Template可能(通常是)多个模板的集合。该模板包含关联模板的映射。使用 template.ParseFiles() 时或 template.ParseGlob() ,返回的 template.Template 将指定第一个被解析的模板(来自多个文件)。您可以在这里阅读更多相关信息:Go template name

而不是使用 Template.Execute() (这——基于上述——将执行第一个解析的模板)使用Template.ExecuteTemplate()方法,您可以在其中指定要执行的模板,由其名称指定:

err := templates.ExecuteTemplate(w, "main.html", data)

这将执行名为 "main.html" 的模板,无论模板文件以何种顺序解析(或稍后添加到模板集合中)。

关于templates - 告诉 Golang 先执行哪个模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42605373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com