为django中的所有模板加载静态文件

时间:2016-03-07 06:00:44

标签: python django django-staticfiles static-files

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

This question表示您可以将常用加载标记分解为设置,但在这种情况下不会提供您需要的详细信息。

2 个答案:

答案 0 :(得分:18)

从django 1.9开始,您可以将以下内容添加到模板设置中:

'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.contrib.staticfiles.templatetags.staticfiles',
            ],
        },
    },
]

答案 1 :(得分:1)

自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',
            ],
        },
    },
]