小编典典

如何将基本模板文件用于golang html / template?

go

有gin-gonic网络应用程序。

有3个文件:

1)base.html-基本布局文件

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

header...

{{template "content" .}}

footer...

</body>
</html>

2)page1.html,用于/ page1

{{define "content"}}
<div>
    <h1>Page1</h1>
</div>
{{end}}
{{template "base.html"}}

3)page2.html,用于/ page2

{{define "content"}}
<div>
    <h1>Page2</h1>
</div>
{{end}}
{{template "base.html"}}

问题是/ page1和/ page2使用一个模板-page2.html。我想我误解这种结构的:{{define "content"}}{{template "base.html"}}

拜托,您能举例说明如何在golang中使用基本布局吗?


阅读 551

收藏
2020-07-02

共1个答案

小编典典

只要解析模板以及“内容”,就可以使用base.html,如下所示:

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}}

然后 ParseFiles 用( “你-page.html中”, “base.html文件”),并 ExecuteTemplate
与您的上下文。

tmpl, err := template.New("").ParseFiles("page1.html", "base.html")
// check your err
err = tmpl.ExecuteTemplate(w, "base", yourContext)
2020-07-02