把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