static file问题

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.*)$' % re.escape(prefix.lstrip('/')), view, kwargs=kwargs),
    ]

你可能感兴趣的:(static file问题)