Django線上項目后台admin不顯示問題


記一次django項目的線上部署錯誤,django+nginx

一、問題描述

在將django項目部署到阿里雲(nginx作為web服務器)上之后發現出現后台管理界面admin不顯示樣式。

二、問題分析

1、靜態資源指向失效

打開瀏覽器查看css資源后發現,雖然文件指向項目文件中的靜態資源,但是static目錄下卻沒有相應的css和js資源
嘗試在項目路徑下收集樣式

python manage.py collectstatic

顯示報錯

django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.

由報錯信息大概得之跟路徑配置靜態文件路徑有關

2、本地環境

在本地時,卻沒有出現問題

3、查找差別

在本地部署到線上后主要是將settings.py配置文件中的debug模式做了修改,


DEBUG = True

ALLOWED_HOSTS = []

改為

DEBUG = False

ALLOWED_HOSTS = ["*"]

三、問題解決

在debug為True的模式下,django的靜態文件都有內部自己管理,文件都在django內部,而部署線上之后無法正常顯示后台admin的靜態文件,就需要指定靜態文件的目錄
這里直接在settings.py中設置指定的靜態文件目錄:

STATIC_ROOT  = os.path.join(BASE_DIR, 'static')#指定樣式收集目錄
#或
STATIC_ROOT = '/www/mysite/mysite/static'  #指定樣式收集目錄

然后收集CSS樣式,在終端輸入:

python manage.py collectstatic
運行這個命令之后,就會自動把后台CSS樣式和其他相關文件資源收集到/static/目錄下。

刷新頁面就能恢復樣式!


免責聲明!

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



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