这里非常受欢迎的问题......
我的模板正在渲染,但{{STATIC_URL}}变量为空或不存在。我正在使用 django 1.4 。
在我的模板中使用变量:
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}app/backbone_project/core.css">
在我的浏览器中打开控制台我发现这是请求的URL:http://machine-name:8000/backbone/app/backbone_project/core.css
因此,STATIC_URL
没有返回任何内容,即如果我将其从模板中删除,则URL保持不变相同。
<link rel="stylesheet" type="text/css" href="app/backbone_project/core.css">
也会返回http://machine-name:8000/backbone/app/backbone_project/core.css
。
我的settings.py文件默认没有TEMPLATE_CONTEXT_PROCESSORS
,所以我认为不需要。我现在就像这样添加它:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.static',
)
执行此操作后出现错误:Put 'django.contrib.auth.context_processors.auth' in your TEMPLATE_CONTEXT_PROCESSORS setting in order to use the admin application.
所以,我添加了它的建议:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.static',
)
这里的最终结果与上述初始问题相同。
我已完全从我的设置中移除TEMPLATE_CONTEXT_PROCESSORS
(因为它是在项目的默认实现中。)这是我的视图代码:
views.py(这里看不多):
def homepage(request):
return render_to_response('backbone_project/index.html', {'data':'none'})
我将视图更改为使用context_instance=RequestContext(request)
,现在它看起来像这样:
from django.template import RequestContext # and other imports
def homepage(request):
return render_to_response('backbone_project/index.html', {'data':'none'}, context_instance=RequestContext(request))
最初的问题仍然存在。