如何将基本模板扩展到其他模板
How to extend a base template to other templates
如何扩展基础 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 框架中执行此操作的方法。他们似乎都说要 'define' 一个模板然后将 HTML "components" 插入其中,我想走另一条路并定义一个基础 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"))
执行生成的模板。
如何扩展基础 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 框架中执行此操作的方法。他们似乎都说要 'define' 一个模板然后将 HTML "components" 插入其中,我想走另一条路并定义一个基础 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"))
执行生成的模板。