为django中的所有模板加载静态文件
Load static files for all templates in django
django 有没有办法不需要每个模板顶部的 {% load static %}
?
This question 表示您可以将常见的加载标签分解到设置中,但在这种情况下没有给出您需要的细节。
从 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'],
},
},
]
感谢 的 Django 3 更新。
从 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',
],
},
},
]
django 有没有办法不需要每个模板顶部的 {% load static %}
?
This question 表示您可以将常见的加载标签分解到设置中,但在这种情况下没有给出您需要的细节。
从 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'],
},
},
]
感谢
从 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',
],
},
},
]