Golang多模板缓存

时间:2016-01-16 20:24:51

标签: caching go go-html-template

是否可以在golang中呈现多个具有相同名称的html模板。原因是,我想制作一个布局并将其重用于多个视图。例如:

{{define "MainLayout"}}
<html>

  <head>
    <title>{{.Title}}</title>
  </head>

  <body>

    <div>{{template "Content" .}}</div>

  </body>

</html>
{{end}}

内容可以是不同的模板,所有模板都由{{define&#34; Content&#34;}}

定义

2 个答案:

答案 0 :(得分:0)

我相信elithrar有你想要的东西,但不幸的是它目前不支持。处理此问题的典型方法是在自己的模板中定义页眉和页脚,并执行与方法相反的操作。并且您可以将给定的结构传递给模板解析器到这些模板中以呈现您的页面。

{{define "header"}}
<html>...
{{end}}

{{define "footer"}}
...</html>
{{end}}

{{define "Content"}}
{{template "header" .}}
HTML
{{template "footer" .}}
{{end}}

答案 1 :(得分:0)

您如何解析模板?在同一模板树中不能有两个具有相同名称的模板。但是,您可以创建一个自定义解析函数,只将一个名为“Content”的模板添加到模板树中。

示例:https://play.golang.org/p/35X3i_jPzS