有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"}}。
{{define "content"}}
{{template "base.html"}}
拜托,您能举例说明如何在golang中使用基本布局吗?
只要解析模板以及“内容”,就可以使用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)