Настройки статических url в jinja2
Я использую шаблон jinja2 в Djagon и хочу назначить статический url для всего проекта, чтобы не использовать длинный относительный путь в css
и js
файле. Ниже показано, как я установил шаблон jinja2 в Django и настроил окружение jinja2.
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',
],
},
},
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'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',
],
'environment': 'project.utils.jinja2_env.jinja2_environment',
},
},
]
def jinja2_environment(**options):
"""
This is the
:param options:
:return:
"""
env = Environment(**options)
env.globals.update({
'static': StaticFilesStorage.url,
'url': reverse,
})
return env
Однако, когда я использую статический url в моем css или js, например:
<link rel="stylesheet" type="text/css" href="{{ static('css/reset.css') }}">
Выдавало ошибку типа:
File "***\login.html", line 6, in top-level template code
<link rel="stylesheet" type="text/css" href="{{ static('css/reset.css') }}">
TypeError: FileSystemStorage.url() missing 1 required positional argument: 'name'
Я предполагаю, что, возможно, существует какой-то конфликт между jinja2 и Django, потому что я не могу использовать шаблон Django, предложенный ниже
{% load static %}
{% static 'css/reset.css' %}
Я не смог разобраться в этом. Кто-нибудь может мне помочь? Спасибо.