Django線上項目後臺admin不顯示問題

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

1、問題描述

在將django項目部署到阿里雲(nginx做爲web服務器)上以後發現出現後臺管理界面admin不顯示樣式。
python

2、問題分析

一、靜態資源指向失效

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

python manage.py collectstatic

顯示報錯web

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

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

二、本地環境

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

三、查找差異

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

DEBUG = True

ALLOWED_HOSTS = []

改成app

DEBUG = False

ALLOWED_HOSTS = ["*"]

3、問題解決

在debug爲True的模式下,django的靜態文件都有內部本身管理,文件都在django內部,而部署線上以後沒法正常顯示後臺admin的靜態文件,就須要指定靜態文件的目錄
這裏直接在settings.py中設置指定的靜態文件目錄:阿里雲

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

而後收集CSS樣式,在終端輸入:debug

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

刷新頁面就能恢復樣式!

相關文章
相關標籤/搜索