當Django設置DEBUG為False時,發現admin和html的靜態資源文件加載失敗的解決辦法
當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 打開網址就能看到資源文件都加載成功了