【问题标题】:Make django static tag globally available使 django 静态标签全局可用
【发布时间】:2012-09-27 07:50:53
【问题描述】:

我正在尝试使 Django 的“静态”标签在所有模板中都可用。我试过this suggestion:

from django.template.loader import add_to_builtins
add_to_builtins('django.contrib.staticfiles') # I've tried each of these
add_to_builtins('django.contrib.staticfiles.templatetags') 
add_to_builtins('django.contrib.staticfiles.templatetags.staticfiles') 

但不断收到以下错误消息:

django.template.base.InvalidTemplateLibrary: Template library django.contrib.staticfiles does not have a variable named 'register'

我做错了什么?

谢谢

【问题讨论】:

标签: django-templates


【解决方案1】:

您需要在您的settings.py 中添加'django.core.context_processors.static',,如下所示:

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.core.context_processors.request',
    'django.contrib.messages.context_processors.messages',
)

【讨论】:

  • 我刚刚尝试过,但我收到“无效的块标签:'静态'”错误(在我的模板中删除显式的“加载静态标签”调用后)
  • 我是否理解正确 - 您希望在模板中使用 {{ STATIC_URL }} 并且只是将其与 static 混合在一起?
  • 对不起,应该让自己更清楚一点!我希望能够使用“静态”标签(django 1.4 中的新标签),而不必在每个模板中加载“静态”标签库。见docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#static
  • 哦,好的。您确定您已将docs.djangoproject.com/en/dev/ref/contrib/staticfiles/… 添加到您的settingscollectstatic 中吗?开箱即用。
【解决方案2】:

问题已在 SO here得到解答

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 2020-05-24
    • 2014-05-04
    • 2014-02-16
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多