天天看點

django debug=false 時的靜态路由設定

把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