Django設置 DEBUG=False后靜態文件無法加載解決


 

前段時間調試一直是在Debug=True先運行的,沒有什么問題。今天關閉了Debug后,出現了一個問題。就是靜態文件找不到了,「img、css、js」都提示404,無法准確的訪問 static 靜態文件。

 

環境是:Python3.7 Django2.2

 

出現的問題根本原因是:當我們在開發django應用時如果設置了 DEBUG = True,那么django便會自動幫我們對靜態文件進行路由;但是當我們設置DEBUG = False后,這一功能便沒有了,此時靜態文件就會出現加載失敗的情況,想要讓靜態文件正常顯示,我們就需要配置靜態文件服務了。參考官方文檔https://docs.djangoproject.com/en/2.0/howto/static-files/

 

1. 首先修改App setting.py文件

  

STATIC_URL = '/static/'
STATIC_ROOT = 'static' ## 新增行
STATICFILES_DIRS = [
  os.path.join(BASE_DIR, '/static/'), ##修改地方
]

 

2. 修改urls.py

from django.views import static ##新增
from django.conf import settings ##新增
from django.conf.urls import url ##新增
urlpatterns = [ path('', include('user.urls')),  ## 以下是新增 url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='static'), ]

 

到這里再運行應該是可以了,如果還有報STATIC_ROOT錯。如果是下面的提示,請修改參見第一點的。

ERRORS: ?: 
(staticfiles.E002) The STATICFILES_DIRS setting 
should not contain the STATIC_ROOT setting.

System check identified 1 issue (0 silenced)
. 
os.path.join(BASE_DIR, '/static/'), #多加了/

 

“偶爾放縱,是對自己獎勵?”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM