【问题标题】:Load static files for all templates in django为 django 中的所有模板加载静态文件
【发布时间】:2016-06-20 14:43:11
【问题描述】:

在 django 中有没有办法不需要每个模板顶部的 {% load static %}

This question 表示您可以将常见的加载标签分解到设置中,但在这种情况下没有提供您需要的详细信息。

【问题讨论】:

    标签: python django django-staticfiles static-files


    【解决方案1】:

    从 Django 1.9 开始,您可以在 settings.py 中为您的 TEMPLATES["OPTIONS"] 添加一个 builtins 键。

    对于 Django 2.1+,使用:

    'builtins': ['django.templatetags.static']
    

    对于 Django 1.9 - 2.0(这将一直工作到 2.2,之后它被弃用),使用:

    'builtins': ['django.contrib.staticfiles.templatetags.staticfiles']
    

    例如,整个模板设置可能如下所示:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
                'builtins': ['django.templatetags.static'],
            },
        },
    ]
    

    感谢 @ZachPlachue 的 Django 3 更新。

    【讨论】:

      【解决方案2】:

      从 Django 3.0 开始,不推荐使用上一个答案的方法。 (见:https://docs.djangoproject.com/en/3.0/releases/3.0/#features-removed-in-3-0

      现在您需要将以下内容添加到您的模板设置中:

      'builtins': ['django.templatetags.static']
      

      这是更新后的模板设置:

      TEMPLATES = [
          {
              'BACKEND': 'django.template.backends.django.DjangoTemplates',
              'DIRS': [],
              'APP_DIRS': True,
              'OPTIONS': {
                  'context_processors': [
                      'django.template.context_processors.debug',
                      'django.template.context_processors.request',
                      'django.contrib.auth.context_processors.auth',
                      'django.contrib.messages.context_processors.messages',
                  ],
                  'builtins': [
                      'django.templatetags.static',
                  ],
              },
          },
      ]
      

      【讨论】:

      • 感谢您的更新;我已将其纳入我的答案中,并在底部给予了您的信任
      • 谢谢!乐于贡献。感谢您的初步解决方案。 @Zags
      猜你喜欢
      • 1970-01-01
      • 2016-03-02
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 2016-02-23
      • 1970-01-01
      相关资源
      最近更新 更多