1. 程式人生 > >Django設置 DEBUG=False後靜態文件無法加載解決

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

hoj ott src col root views span bug 沒有

技術分享圖片

前段時間調試一直是在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 ##新增

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/), #多加了/

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

技術分享圖片

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