我可以防止一个文件在模板中多次包含吗?
这是一些(损坏的)示例代码:
# test.py
import jinja2
ENV = jinja2.Environment(loader=jinja2.FileSystemLoader('.'))
template = ENV.get_template('template.html')
print template.render({})
模板如下所示:
{% include 'includejquery.html' %}
{% include 'includejquery.html' %}
如您所见,我已经包含了 jquery 两次(哎呀)。我希望我可以做一些类似于我将使用 C 预处理器的事情:
{% if _JQUERY is defined %}
{% else %}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
{% set _JQUERY = 1 %}
{% endif %}
但这似乎不起作用。这里有什么干净的解决方案吗?
我这样做的原因是因为我有多个组件——如果每个组件都有自己的包含文件,其中包含使用该组件所需的一切,那就太好了。目前我正在将 JQuery 从包含文件中剔除,但是随着依赖项的增长并且多次包含 JQuery 会导致某些脚本中断,这可能会变得乏味。