http://docs.djangoproject.com/en/dev/howto/static-files/
这表明我可以在模板中使用STATIC_URL
从settings.py中获取值。
模板看起来像这样:
<link href="{{STATIC_URL}}stylesheets/tabs.css" rel="stylesheet" type="text/css" media="screen" />
Settings.py看起来像这样:
STATIC_ROOT = ''
STATIC_URL = '/static/'
当我转到页面时,我得到<link href="stylesheets/tabs.css"
,即没有STATIC_URL。
我错过了什么?
答案 0 :(得分:52)
您必须在context_instance=RequestContext(request)
中使用render_to_response
,例如:
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))
或使用新的快捷方式render
正如Dave指出的那样,您应该检查settings.py中的django.core.context_processors.static
变量中是否有TEMPLATE_CONTEXT_PROCESSORS
。正如the docs所说,它默认存在。
答案 1 :(得分:3)
不建议直接使用STATIC_URL
变量。请参阅accepted answer
而不是
{{STATIC_URL}}stylesheets/tabs.css
使用
{% load staticfiles %}
{% static 'stylesheets/tabs.css' %}
答案 2 :(得分:0)
我也有同样的问题,解决方法如下:
在settings.py中 添加:
django.template.context_processors.static
这里:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': TEMPLATE_DIRS,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.template.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]