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

2022-08-05 19:56:25 浏览数 (1)

把DEBUG从True改成False后就会出现404(必需指定404和500错语页面,如上图的目录结构)找不到页面的错误。原因是DEBUG为 True时django会默认帮我们处理静态文件,而为False的话还需要我们做点事。在全局usrs.py中加下如下代码:

代码语言:javascript复制
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' ,}), 
        ]
代码语言:javascript复制

或者

代码语言:javascript复制
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中添加

代码语言:javascript复制
STATIC_ROOT = 'C:/Users/Administrator/Desktop/hctx/op/op/static'

或者

代码语言:javascript复制
#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

0 人点赞