我在base.html
文件中使用include
和extends
,并期望它们按顺序包含在内。但extends
模板被追加到文件的末尾。Jinja2包含&延伸不按预期工作
我希望我的模板给我的输出:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>Test String from block !</p>
<footer>text from footer.</footer>
</body>
</html>
但目前的结果是:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<footer>text from footer.</footer>
</body>
</html>
<p>Test String from block !</p>
在base.html
,第一我有header.html
,然后content.html
然后footer.html
但渲染顺序是header.html
,footer.html
,content.html
。
index.html
{% extends "base.html" %}
{% block content %}
<p>Test String from block !</p>
{% endblock %}
base.html
{% include "header.html" %}
<body>
{% extends "content.html" %}
{% include "footer.html" %}
header.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
content.html
{% block content %}
{% endblock %}
footer.html
<footer>text from footer.</footer>
</body>
</html>
为什么之前发生的事情是烧瓶/忍者的错误还是我的坏? –
我认为这是文件以某种方式互相牵引的顺序问题,但我无法确切地说。 – coralvanda
您的回答很有用,我也会在'jinja' github版本库中提出问题。感谢您的帮助 –