Django設置 DEBUG=False後靜態文件無法加載解決
阿新 • • 發佈:2018-11-08
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 identified1 issue (0 silenced)
.
os.path.join(BASE_DIR, ‘/static/‘), #多加了/
“偶爾放縱,是對自己獎勵?”
Django設置 DEBUG=False後靜態文件無法加載解決