把DEBUG从True改成False后就会出现404(必需指定404和500错语页面,如上图的目录结构)找不到页面的错误。原因是DEBUG为 True时django会默认帮我们处理静态文件,而为False的话还需要我们做点事。在全局usrs.py中加下如下代码:
from django.conf import settings import django if settings.DEBUG is False: urlpatterns += [ url(r'^static/(?P<path>.*)$',django.views.static.serve,{'document_root': 'C:/Users/Administrator/Desktop/hctx/op/op/static' ,}), ]
或者
from django.conf import settings import django if settings.DEBUG is False: urlpatterns += [ url(r'^static/(?P<path>.*)$',django.views.static.serve,{'document_root': settings.STATIC_ROOT,}), ]
并在setting中添加
STATIC_ROOT = 'C:/Users/Administrator/Desktop/hctx/op/op/static'
或者
#start from django.conf import settings import django #end if settings.DEBUG is False: import os STATIC_ROOT = os.path.join(os.path.dirname(__file__),'static') urlpatterns += [ url(r'^static/(?P<path>.*)$',django.views.static.serve,{'document_root': STATIC_ROOT ,}), # url(r'^static/(?P<path>.*)$',django.views.static.serve,{'document_root': 'C:/Users/Administrator/Desktop/hctx/op/op/static' ,}), ]
以上设置是指定静态资源的绝对路径(根据你电脑的具体路径设置正确值),现在应该可以正确访问了。
总结:
在DEBUG为true时我们只需要建立static目录后,把静态资源放进去就可以访问。在DEBUG为False时需要我们手动指定静态资源目录,并配置映射关系。
在正式环境下建议不采用django处理静态资源文件,这样对应用服务器压力较大,也不好做cdn。可以用ngix,apache部署静态资源。
相关链接:https://my.oschina.net/swrite/blog/168561
暂无评论,还不快来坐沙发...