django debug=false 时的静态路由设置

By 肖奈
2017-10-31
6744 read

把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


django url 正则
python 字符串的操作

Comments

暂无评论,还不快来坐沙发...

Leave a Reply