記一次django項目的線上部署錯誤,django+nginxcss
在將django項目部署到阿里雲(nginx做爲web服務器)上以後發現出現後臺管理界面admin不顯示樣式。
python
打開瀏覽器查看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 = ["*"]
在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/目錄下。
刷新頁面就能恢復樣式!