Django STATIC_URL is not working

久未见 提交于 2019-11-29 01:32:28

Change

return render_to_response('register.html', 'errors':errors)

to

return render_to_response('register.html', {'errors': errors}, RequestContext(request))

In Django 1.4 you should use static templatetag1.

Try:

{% load staticfiles %}
<link href="{% static "css/main.css" %} ...>

Unfortunately, Django's render_to_response shortcut by default uses normal template context, which does not include context processors and all their fancy and useful stuff like STATIC_URL. You need to use RequestContext, which does precicely that.

This can be called by using the new render (available since Django 1.3):

from django.shortcuts import render

return render(request, 'register.html', {'errors':errors})

In Django 1.2 and older, you need to supply the context explicitly:

from django.shortcuts import render_to_response
from django.template import RequestContext

return render_to_response('register.html', {'errors':errors},
    context_instance=RequestContext(request))

dont you need this in your return statement?:

context_instance=RequestContext(request)

I realize this has already been answered but I wanted to provide another answer in the event that STATIC_URL still renders as empty even when using RequestContext.

If you are running the development server remember to start the server with the insecure flag to have the server serve your static files:

python manage.py runserver --insecure
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!