众所周知,一个网页普遍由头、身、脚组成,而一个项目中头和脚基本相同,这些部分就需要提取出来。
比如:
<html> <head> ... </head> <body> ... </body> ... </html>
分割的时候就会分成这样:
头:
<html> <head> ... </head> <body>
身:
...
脚:
</body> ... </html>
然后就可以通过三次调用func (*Template) Execute这个方法来渲染模板了!
可是本人有个强迫症,看到<html></html>和<body></body>被分到了两个文件中十分不爽,所以想了下面这个方法:
main.html:
{{define "main"}} <html> <head> ... </head> <body> {{template "content" .}} </body> ... </html> {{end}}
index.html:
{{template "main" .}} {{define "content"}} ... {{end}}
然后使用 func ParseFiles(filenames ...string) (*Template, error) 这个方法同时传入上面两个文件名,调用一次 func (*Template) Execute 就可以达成目标了。注意两个文件{{template xxx .}}有一个点,否则数据传不进去!