當開發時,django可以通過更改settings.py
來處理靜態文件,我想這不會花費太多資源來處理這些靜態文件。爲什麼不django自己處理靜態文件,沒有Apache?
但是,當使用mod_wsgi
將項目應用於生產環境時,推薦的方法是處理靜態文件,即使用apache的配置文件來處理,甚至無法在django中處理靜態文件。
那麼爲什麼不django處理靜態文件,至少給用戶一個簡單的方法來做到這一點?
當開發時,django可以通過更改settings.py
來處理靜態文件,我想這不會花費太多資源來處理這些靜態文件。爲什麼不django自己處理靜態文件,沒有Apache?
但是,當使用mod_wsgi
將項目應用於生產環境時,推薦的方法是處理靜態文件,即使用apache的配置文件來處理,甚至無法在django中處理靜態文件。
那麼爲什麼不django處理靜態文件,至少給用戶一個簡單的方法來做到這一點?
Django並不意味着在生產中提供靜態文件。
Django的代碼,靜態文件是爲發展,它不意味着是高性能的,甚至安全。
主要使用HTTP服務器是爲靜態文件,它是換貨是高性能和安全爲。 Django沒有理由干涉HTTP服務器和文件系統。
系統管理員需要配置安全和高性能的HTTP服務器。如果系統管理員無法做到這一點,那不是Django的錯。
通過這樣做,Django的符合幾個原則的Unix:
等等
Django的staticfiles系統是真棒,其實很多一直在使用它之前它被納入Django的(見Django的staticfiles應用程序)。我深信,任何願意付出一點努力的人都可以充分理解並發現它太棒了。我記得我對django-staticfiles的理解有點困難,但那隻不過是一個愛情故事。
應用程序可以在除了網址,模板,視圖和模型通過只創建一個「靜態」子目錄中嵌入靜態文件。
如果你不理解Django是如何幫助在處理靜態文件非常好,你可以試試這個文章surviving django staticfiles。
你不是真的想讓Django從性能的角度來提供靜態文件。沒有理由向Django實例發送請求,然後在Web服務器自行完成時更快地讓Python返回文件。
你可以使用它在生產中使用容易
python manage.py runserver 0.0.0.0:80
和網站將工作就像在發展。 同樣,不建議..但是工作
在真實世界的情況下,你更喜歡一些其他的Web服務器服務的原因有很多靜態文件(在其他的答案中提到)
,但它會更容易部署,特別是當性能不是問題時,你會想要。 – Topro
Django的靜態文件系統很棒,事實上很多人在它被包含到django之前就已經使用它了(請參閱django-staticfiles應用程序)。我深信,任何願意付出一點努力的人都可以充分理解並發現它太棒了。 – jpic