【问题标题】:specify staticfiles to be loaded in every django template?指定要在每个 django 模板中加载的静态文件?
【发布时间】:2013-10-11 06:15:38
【问题描述】:

有没有办法在每个模板文件中自动执行{% load staticfiles %}
会显着影响性能吗?

如果这是一个不好的做法,我想知道以下用例是否可以。
我*包含*循环中的文件,并加载静态文件,

{% for a in a_list %}
  {% include "a.html" %}
{% endfor %}

a.html

{% load staticfiles %}
use {% static "a.html" %}

【问题讨论】:

  • 您需要在每个模板中加载静态文件,如果该模板中的 html 使用它们。这是 django 推荐的。无需使用 for 循环。只需加载静态文件即可。
  • 我正在使用重复包含的静态过滤器。并想知道这是否可行
  • 那不是过滤器,静态是标签。你没问题。

标签: django templates include


【解决方案1】:

您可以使用template.base 中的add_to_builtins 方法将static 标记自动加载到模板中可用的默认标记集中:

from django.template.base import add_to_builtins
add_to_buildins('django.templatetag.static')

此代码可能最好放在您的settings.py 文件中,或任何其他自动导入的位置。

【讨论】:

  • 作为一个简短的说明,这可以通过 Django 1.9 的 Engine 设置实现(并且可能已弃用,不确定)。请参阅ticket 和一些documentation。也许答案可以更新,然后我将删除评论。
猜你喜欢
  • 1970-01-01
  • 2016-03-02
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 2017-12-22
  • 2013-09-13
  • 2012-12-17
相关资源
最近更新 更多