当我在django 1.5中的设置文件中设置DEBUG=False
时,我无法再访问我的django模板中的TEMPLATE_CONTEXT_PROCESSORS应加载的STATIC_URL
或任何其他变量。奇怪的是,一切都在DEBUG=True
时有效。为了它的价值,我的'django.core.context_processors.static'
肯定有TEMPLATE_CONTEXT_PROCESSORS
,所以这不是问题。我还在我的模板上下文中检查了一些其他变量,似乎没有其他任何变量。 MEDIA_URL
?不。 request
?不。 See this example on github(已使用解决方案进行了更新),但这些是DEBUG=True
时正常工作的重要部分,并在DEBUG=False
时抛出500错误:
# settings.py
from django.conf.global_settings import *
# ...
TEMPLATE_CONTEXT_PROCESSORS += (
'django.core.context_processors.request',
)
# believe it or not, 'django.core.context_processors.static' is in there
print TEMPLATE_CONTEXT_PROCESSORS
# views.py
from django.template import RequestContext
from django.shortcuts import render_to_response
def wtf(request):
return render_to_response(
"wtf.html", {},
context_instance=RequestContext(request)
)
当您关闭调试模式时,django 1.5中是否会发生特殊情况?任何修复和/或调试问题的建议都将不胜感激!
答案 0 :(得分:0)
看起来Django 1.2和1.3之间存在变化。
如果您希望模板在调试模式之外可以使用django.core.context_processors.static
,则必须在TEMPLATE_CONTEXT_PROCESSORS
中加入STATIC_URL
。
您还需要确保在渲染模板时使用RequestContext
实例。
答案 1 :(得分:0)
可以通过编辑settings.py中的ALLOWED_HOSTS变量来解决此问题。有关详细信息,请参阅this answer。
要将此设置为work on localhost,请设置ALLOWED_HOSTS = ['localhost']
。