and*_*rew 7 html python django django-templates jinja2
我正在构建一个Django应用程序,并选择使用Jinja2作为我的模板引擎.我注意到在从Django的内置模板引擎切换到Jinja2之后,load关键字无效,ex : {% load static %}. 这用于加载CSS等静态文件.在Django中是否有针对此的Jinja解决方法?
/ app /上的TemplateSyntaxError
遇到未知标记'load'.
来自settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [
os.path.join(BASE_DIR, 'app/templates/jinja2'),
],
'APP_DIRS': True,
'OPTIONS': {
'environment': 'my_project.jinja2.environment',
},
},
Run Code Online (Sandbox Code Playgroud)
Django:1.11
Jinja2:2.9.6
这在Djang2模板参考中的Jinja2手册部分进行了解释
有目的地将默认配置保持在最低限度.如果使用请求呈现模板(例如,使用render()时),Jinja2后端会将全局请求,csrf_input和csrf_token添加到上下文中.除此之外,这个后端不会创建一个Django风格的环境.它不知道Django过滤器和标签.要使用特定于Django的API,必须将它们配置到环境中.
是的,{%load static%}不存在,但有一个简单的解决方法.同样,该示例来自参考
from __future__ import absolute_import # Python 2 only
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
from jinja2 import Environment
def environment(**options):
env = Environment(**options)
env.globals.update({
'static': staticfiles_storage.url,
'url': reverse,
})
return env
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4784 次 |
| 最近记录: |