Django對靜態檔案的處理 部署階段

2021-07-03 15:39:40 字數 927 閱讀 8075

django 的官方文件中說,django

但在開發階段,本地不一定能模擬生產環境,這時也是要使用靜態檔案的。為此django 提供了一些

工具來處理靜態檔案,作為開發階段的臨時解決方案。

所以就分 開發階段 和 部署階段 兩種情況來說 django 的靜態檔案處理。

部署階段

這個比較簡單,因為 django 將這部分的工作完全拋給伺服器(比如 nginx)了:在 html 中指定 url,同時將要用到的靜態檔案都放在乙個地方,然後告訴伺服器當對這些 url 發起請求時到這個地方去尋找。

django 在這個階段的工作中只是提供了幾個輔助工具。

當然了,你完全可以不用管這些,手動將你要用到的靜態檔案收集到一起,如果你的專案很小的話。staticfiles 只是乙個可選工具,其本身也是在 1.3 之後才引入 django 中,它的前身是 django 的第三方工具包 django-staticfiles。

這幾個方法看起來讓人眼花繚亂,實際使用中不用糾結這麼多,django官方建議直接使用 staticfiles 中的 static,以方便以後的擴充套件。而前三種方法,大概可以看做歷史遺留產物了吧。

這就是 django 為部署階段提供的兩方面幫助:收集靜態檔案,生成靜態

資源的 url。

下面來總結下上面提到過的 settings.py 中的設定項:

還有兩個相關的設定項:

在之前版本的 django 中,不區分 media_root 和 static_root,顯然不太合適。分開之後,你可以將 media_root 中的檔案像其他靜態檔案一樣,交給專門的伺服器處理,或者使用 cdn 和雲服務資源。staticfiles 這個工具並不干涉 media_root 中的檔案。使用者上傳檔案在 django 看來屬於 stored files,區別於 static files 來看待,這就是另外乙個話題了。

Django對靜態檔案的處理 部署階段

django 的官方文件中說,django 但在開發階段,本地不一定能模擬生產環境,這時也是要使用靜態檔案的。為此 django 提供了一些工具來處理靜態檔案,作為開發階段的臨時解決方案。所以就分 開發階段 和 部署階段 兩種情況來說 django 的靜態檔案處理。部署階段 django 在這個階段...

Django靜態檔案處理總結

靜態檔案指像css,js,images之類的檔案,在django裡面靜態檔案的處理與一般的檢視是不一樣,新手往往容易犯迷糊,本文做一下總結 一 概述 靜態檔案交由web伺服器處理,django本身不處理靜態檔案。簡單的處理邏輯如下 以nginx為例 uri請求 按照web伺服器裡面的配置規則先處理,...

django中靜態檔案的處理

要在django的tempalte file中引用css js gif等靜態檔案,首先一條setting.py中debug開關開啟。1 在project目錄下建立乙個存放靜態檔案的目錄,如 medias 2 在url.py patterns中增加一行 r site media p.django.vi...