如何扩展基本的html文件,例如:
base.html
<!DOCTYPE html>
<html>
<head>
<title>My Site</title>
</head>
<body>
<!-- insert html here -->
</body>
</html>
然后创建一个继承该基本模板的页面,在Python Jinja2中,我会这样做:
main.html
{{ extend "base.html" }}
main.html现在具有来自base.html的所有HTML。然后,只要我在base.html文件中定义了一个区域以将html插入,就可以从main.html进行操作,在Jinja2中,它看起来像:
base.html
<!DOCTYPE html>
<html>
<head>
<title>My Site</title>
</head>
<body>
{{ block "body" }}
{{ endblock }}
</body>
</html>
然后进入main.html
{{ extend "base.html" }}
{{ block "body" }}
<h1>Title</h1>
{{ endblock }}
我不知道在任何Go框架中都可以做到这一点。他们似乎都说要“定义”一个模板,然后将HTML“组件”插入其中,我想采用另一种方法来定义基本HTML文件,并将其继承到要构建的其他HTML文件中(如果可以的话) ?
使用这些模板。
base.html:
<!DOCTYPE html>
<html>
<head>
<title>My Site</title>
</head>
<body>
{{block "body" $}}{{end}}
</body>
</html>`
main.html:
{{define "body"}}<h1>Title</h1>{{end}}
使用标准库模板包按扩展顺序解析模板;
t := template.Must(template.ParseFiles(
"base.html",
"main.html"))
执行生成的模板。