django的staticfile的服务
首先设置STATIC_URL和STATIC_ROOT
另需要在INSTALLED_APPS中增加 'django.contrib.staticfiles'
由于在本地测试和使用pycharm开发时,都是使用的python的原生服务器,也就是使用:
python manage.py runserver
但是在服务器上使用的是uwsgi,不能实现自动服务。
另需要在urls中添加:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
此外,我看了下static这个helper函数的源码,它会判断是否在DEBUG状态下,再提供url。
为了强行部署static server,可以使用:
import re
from django.conf import settings
from django.conf.urls import url
from django.views.static import serve
def static(prefix, view=serve, **kwargs):
return [
url(r'^%s(?P<path>.*)$' % re.escape(prefix.lstrip('/')), view, kwargs=kwargs),
]