1. 程式人生 > 其它 >nginx 部署Django專案時,Admin後臺管理CSS樣式丟失

nginx 部署Django專案時,Admin後臺管理CSS樣式丟失

技術標籤:python

nginx 部署Django專案時,Admin後臺管理CSS樣式丟失
解決方法 : 需要配置 專案中的目錄路徑 和 nginx代理

文章目錄


前言

部署採用的是ubuntu+Django+uwsgi+nginx

一、專案settings.py檔案配置

在settings.py裡面最後一行新增:

STATIC_URL = '/static/'  --nginx 會通過static為開頭訪問指定靜態資原始檔
STATIC_ROOT  = os.path.join(BASE_DIR, 'static'
) #指定樣式收集目錄 或者 STATIC_ROOT = '/datadrive/workspace/django_site/static/' -- 我們手動指定目錄
上面是配置靜態資原始檔到指定專案目錄的,不然 預設static會在Django的安裝目錄下
python manage.py collectstatic --在專案根目錄 執行此命令 生成static相關靜態資原始檔

二、配置nginx 代理

nginx除了提供反向代理,負載均衡以外,還提供了靜(html, css, js)動(檢視,模板需要進行解析執行的,或者操作資料庫的)分離的功能。

nginx為什麼只從配置路徑中尋找靜態資源:


因為處理靜態和處理動態資源所消耗的效能和是不一樣的。原本靜態和動態都是在django專案中,而且django專案執行在uwsgi中,所以動靜態都是由uwsgi處理。有了nginx之後,靜態資源我們交給nginx處理,nginx處理靜態資源的效能極高。

原本django專案中的靜態資源存放在static資料夾中,其中包含我們自己的html,css,js等。
admin模組擁有的靜態資源沒有在static資料夾下,nginx中配置的會從static目錄下尋找靜態資源。

在nginx配置檔案中 新增server 欄位下 新增以下內容

location /static {
	# 指定靜態檔案存放的目錄
	alias /
datadrive/workspace/django_site/static/; }

然後 重啟nginx和uwsgi即可

相關連結 戳這裡
nginx配置