擅长:python、mysql、java
<p>问题是<code>child.j2</code>中的<code>page_js</code>块是“在无处可寻的中间”,它不会改变<code>ulta_base.j2</code>的任何块,因此Jinja2不会从中呈现任何内容。解决方案非常简单,您甚至不需要定义新的<code>extra_js</code>块,只需使用Jinja2的<a href="http://jinja.pocoo.org/docs/dev/templates/#super-blocks" rel="nofollow">super()</a>函数:</p>
<p><code>ultra_base.j2</code>保持不变:</p>
<pre><code><! ultra_base.j2 >
<head>
</head>
<body>
{% block content %}{% endblock %}
{% block extra_js %} {% endblock %}
</body>
</code></pre>
<p><code>child.j2</code>模板:</p>
^{pr2}$
<p>{cd7>和^:</p>
<pre><code><! grandchild.j2 >
{% extends child %}
{% block content %}
<h2> Grandchild Content </h2>
{% endblock content %}
{% block extra_js %}
{{ super() }}
<script src="grandchild.js"></script>
{% endblock extra_js %}
</code></pre>
<p>Jinja2将负责包含来自父模板的块内容。在</p>