django STATIC_URL变量为空

时间:2014-06-11 18:33:19

标签: python css django django-1.4

这里非常受欢迎的问题......

我的模板正在渲染,但{{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',
)

这里的最终结果与上述初始问题相同。

编辑2

我已完全从我的设置中移除TEMPLATE_CONTEXT_PROCESSORS(因为它是在项目的默认实现中。)这是我的视图代码:

views.py(这里看不多):

def homepage(request):
    return render_to_response('backbone_project/index.html', {'data':'none'})

编辑3

我将视图更改为使用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))

最初的问题仍然存在。

0 个答案:

没有答案