首页 > 后端开发 > Golang > 正文

如何在Go的HTML/模板中使用基础模板文件?

DDD
发布: 2024-11-07 11:12:03
原创
965 人浏览过

How Do I Use Base Template Files in Go's HTML/Template?

在 Go 的 HTML/模板中使用基本模板文件

在 Web 开发中,使用基本布局模板有助于保持多个页面的一致性。让我们了解如何在 Go 的 HTML/模板中使用此技术。

例如,假设我们有三个文件:

base.html: 基本布局文件

<!DOCTYPE html>
<html lang="en">
<body>

header...

{{template "content" .}}

footer...

</body>
</html>
登录后复制

page1.html:“/page1”的页面模板

{{define "content"}}
<div>
    <h1>Page1</h1>
</div>
{{end}}
{{template "base.html"}}
登录后复制

page2.html:“/page1”的页面模板/page2"

{{define "content"}}
<div>
    <h1>Page2</h1>
</div>
{{end}}
{{template "base.html"}}
登录后复制

问题是“/page1”和“/page2”当前使用相同的模板文件“page2.html”。

要使用“ base.html”布局模板,您需要一起解析“content”和“base”模板。这是使用 ParseFiles 和 ExecuteTemplate 实现的。

base.html(已更新):

{{define "base"}}
<!DOCTYPE html>
<html lang="en">
<body>

header...

{{template "content" .}}

footer...

</body>
</html>
{{end}}
登录后复制

page1.html(已更新):

{{define "content"}}
I'm page 1
{{end}}
登录后复制

page2.html(已更新):

{{define "content"}}
I'm page 2
{{end}}
登录后复制

用法:

tmpl, err := template.New("").ParseFiles("page1.html", "base.html")
// handle error
err = tmpl.ExecuteTemplate(w, "base", yourContext)
登录后复制

这将渲染基本布局模板中的适当内容。例如,在渲染“/page1”时,内容“I'm page 1”将被合并到基本模板的 {{template "content. ."}} 部分中。

以上是如何在Go的HTML/模板中使用基础模板文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!