我正在构建Django应用,并选择将Jinja2用于我的模板引擎。我注意到从Django的内置模板引擎切换到Jinja2后,load关键字将不起作用,例如:{% load static %}。这用于加载CSS之类的静态文件。在Django中是否有针对Jinja的解决方法?



从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',
    },
},

的Django:1.11
Jinja2:2.9.6

最佳答案

django模板引用中Jinja2的手册部分对此进行了解释



是的,{%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

关于python - 在Django中使用Jinja2,加载标签不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44271949/

10-12 18:16