django中靜態檔案配置static的方法

2022-10-04 10:45:14 字數 2469 閱讀 2574

環境

白話我們可以使用template 設定我們的網頁,同時,乙個完美的網頁需要css,js,image 等靜態檔案的支援。

django中配置方式貌似有不少總,因為很多相關的部落格寫的方式並不一致,當然這可能是django 的版本不同導致的。

當我們在乙個專案下建立乙個app後,我們就需要為該app下建立乙個static 資料夾來存放相關靜態www.cppcns.com資源。

但建立了多個app後,就需要在多個app下建立static。

這樣引入了乙個問題,因為,我們的可能用了同乙個js檔案。分別存放顯然是浪費載入時間。

於是在實際部署的時候,我們會將不同app下的static 檔案放到乙個「合適」的地方。提高資源載入速度,同時也方便管理。

好了,大概就是這個思路,我們下面介紹如何配置

配置step one

--app

--migrations

--static

--css

--js

--image

--templates

--__init__.py

...檔案結構如上所示,注意,我這裡只展示了某app下的結構,而不是整個專案結構,可能你的沒有templates這個資料夾,這不要緊,這個是我建立的。

我們最好在static下分類好不同資料夾 css , js,image.(這是推薦的做法)

多個app時,我們就在不同的app 下建立static。(後面我們在講更合理的方法,這裡需要這樣做為了你理清步驟)

step two

在settings.py中的static_url = '/static/'後面新增

static_root = os.path.join(base_d 'static')

這個static_root 就是我們最終部署時候需要使用的,解決資源分散的問題。

base_dir 這個變數在settings.py的開始部分被定義,就是專案根目錄的目錄名。

os.path.join 方法,在專案根目錄下新建乙個static資料夾。

我看到很多部落格這裡配置的很多,很亂,讓人摸不著頭腦。

這個地方完全可以這樣配置,載入我們的靜態資源。(信我,我可是被很多不負責任的部落格坑慘了)

step three

建立資料夾完,配置檔案這兩步都完成後,我們需要的就是把他放到網頁中顯示。

在app下新建乙個templates,如果有就不用建立

--app

--migrations

--static

--templates

--appname

--index.html

--__init__.py

...大家注意,我並沒有直接在templates下直接建立index.html ,而是建立了乙個」appname」(就根據你的app來命名這樣不會衝突)。並在appname 下建立的index.html。

因為django去找template的時候是吧app下的templates ,存為乙個list。如果我們多個app,就可能導致,想訪問app2的index,結果卻返回了app1的index.html。

index.html 內容

#這個地方引入static這個檔案

程式設計客棧t;

title

#表示路徑

這裡的#號注釋是方便大家理解,並不是html支援的格式,貼上的時候需要去掉

並在image資料夾下加入一張名為logo.png的,因為可以直觀的判讀我們的設定是否生效。

python manage.py runserver 0.0.0.0:9000

訪問你的9000埠,檢視時候生效。注意我們到這裡還未配置nginx.

如果正確,說明路徑沒問題。

step four

python manage.py collectstatic

該命令收集專案下的靜態檔案,統一儲存到 static_root 就是我們第二步,剛剛配置的。

--project

--project

--static

--app1

--app2

--manage.py

...step five

nginxfchoubgk 中配置

location ^~ /static/

這個地方 注意配置到static的上級就可以了。

我之前配置成了root /home/project/static 就會一直提示404

在部署的時候,django也建議將settings.py中的debug=true 改為debug=false。以保證安全性。

重新啟動nginx ,看看是否成功了呢?

如果成功了,程式設計客棧可以將app下的static刪掉再試試,理論上也是可以成功的,因為此時我們已經將專案所有的靜態檔案全都集中到了根目錄下的static中。

總結配置靜態檔案還是要先了解他是如何生效的,one by one,搞清邏輯。

那樣在配置才不會混亂,否則不同的教程只會讓人抓狂。

Django靜態檔案配置

最近用django開發專案,發現django的靜態檔案 js,css和img等 配置比較麻煩,開發環境和生產環境的配置還不一樣,這裡記錄一下,作為備忘。我當前使用的版本是django v1.4.3。吐槽 django的版本不相容是個大問題,網上搜尋相關問題時,解決方案到是一大推,但是均沒有標註版本,...

Django 靜態檔案配置

django 在自身的開發伺服器上有著自身的淺藍色排版。部署到apache伺服器上會呈現一種無排版狀態。原因是 static 靜態檔案沒有配置。1.在設定檔案 settings.py 裡,新增 static url static static root os.path.join base dir,s...

Django靜態檔案配置

本文目的 最近用django開發專案,發現django的靜態檔案 js,css和img等 配置比較麻煩,開發環境和生產環境的配置還不一樣,這裡記錄一下,作為備忘。我當前使用的版本是django v1.4.3。吐槽 django的版本不相容是個大問題,網上搜尋相關問題時,解決方案到是一大推,但是均沒有...