當Django設定DEBUG為False時,發現admin和html的靜態資原始檔載入失敗的解決辦法

不周之風發表於2021-01-15

當Django設定DEBUG為False時,發現admin和html的靜態資原始檔載入失敗,折騰一段時間終於找到解決辦法;

1、先在setting檔案增加BASE_DIR(專案的路徑)

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

2、然後設定:DEBUG = False

3、新增:ALLOWED_HOSTS = ['*']   # 允許IP訪問

 

 

 

4、新增

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR + "/Mydjango/", 'static') # 建立自己新的靜態資料夾

STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) # 原來的靜態資料夾路徑

備註:STATICFILES_DIRS 是原來的靜態資原始檔夾,路徑請根據自己實際設定
  STATIC_ROOT  是簡歷新的靜態資原始檔夾,請根據自己實際設定;

  但是兩個路徑的資料夾名字需要一致,比如我這裡都是static

 

5、去urls.py新增訪問路徑:

# 訪問靜態檔案
from django.views.static import serve
from django.contrib import admin
from Mydjango import settings  # Mydjango 是你的APP的名字

在urlpatterns增加
url(r"^admin/", admin.site.urls),
url(r"^static/(?P<path>.*)$", serve, {"document_root": settings.STATIC_ROOT}, name='static'),

 

 

 

 

6、然後執行python manage.py collectstatic 同步靜態檔案,見圖一;

然後python manage.py runserver 0.0.0.0:8000     開啟網址就能看到資原始檔都載入成功了

  

 

相關文章