Golang template usage is simple:
TPL, _: = template. Parsefiles ("templates/post.html")
Tpl. Execute (W, Nil)
But the layout of a template has a lot of public parts, through which we will do the Layout,parsefiles method can be passed to multiple templates, such as the following implementation: template
Layout.html
{{define ' layout '}}
<meta charset= "UTF-8" >
<title>Title</title>
<body>
{{Template ' body '.}}
</body>
{{End}}}
Post.html
{{Template ' layout '.}}
{{define ' body '}}
<div>
This are body
</div>
{{End}}}
The Golang implementation (the primary template as the first parameter) statement is as follows:
TPL, _: = template. Parsefiles ("templates/post.html", "templates/layout.html")
Tpl. Execute (W, Nil)
If incoming Funcmap:
var funcmaps = template. funcmap{
"Empty": Func (str string) bool {
if str = = "" {
return True
} else {
return False
}
},
}
TPL, err: = template. New ("post.html"). Funcs (Funcmaps). Parsefiles ("templates/post.html", "templates/layout.html")
If Err!= nil {
//...
}
Tpl. Execute (W, Nil)
The special note here is that the parameter of the new method is the outermost container file name, not the path