1. settings.py里面加上如下配置
STATIC_URL = '/static/'
if not DEBUG:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
else:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
2. urls.py内加入如下配置
from django.views.static import serve
from django.conf import settings
from django.conf.urls import url
if not settings.DEBUG:
urlpatterns.append(url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}))
其他部分正常操作即可。
原理:
django在debug模式下, 会基于静态文件生成对应的路由, 默认会加到路由表内, 但是非debug模式下不会自动添加, 因为正式生产环境一般都是通过nginx+uwsgi或者其它方式去部署, 静态文件通常是通过其他手段去映射路由, 故默认非debug模式下不生成响应路由