2012-11-19 41 views
0

當開發時,django可以通過更改settings.py來處理靜態文件,我想這不會花費太多資源來處理這些靜態文件。爲什麼不django自己處理靜態文件,沒有Apache?

但是,當使用mod_wsgi將項目應用於生產環境時,推薦的方法是處理靜態文件,即使用apache的配置文件來處理,甚至無法在django中處理靜態文件。

那麼爲什麼不django處理靜態文件,至少給用戶一個簡單的方法來做到這一點?

回答

1

Django並不意味着在生產中提供靜態文件。

Django的代碼,靜態文件是爲發展,它不意味着是高性能的,甚至安全。

主要使用HTTP服務器是爲靜態文件,它是換貨是高性能和安全爲。 Django沒有理由干涉HTTP服務器和文件系統。

系統管理員需要配置安全和高性能的HTTP服務器。如果系統管理員無法做到這一點,那不是Django的錯。

通過這樣做,Django的符合幾個原則的Unix:

  • 簡單的規則:爲了簡單起見,設計;只在必要的地方增加複雜性。
  • 簡約規則:只有通過示範清楚表明沒有別的行爲會寫出一個大程序。
  • 模塊化規則:用乾淨的接口編寫簡單的部件。
  • 分離規則:將政策與機制分開;與引擎分開的接口。
  • 清晰度規則:清晰度比聰明度要好。

等等

Django的staticfiles系統是真棒,其實很多一直在使用它之前它被納入Django的(見Django的staticfiles應用程序)。我深信,任何願意付出一點努力的人都可以充分理解並發現它太棒了。我記得我對django-staticfiles的理解有點困難,但那隻不過是一個愛情故事。

應用程序可以在除了網址,模板,視圖和模型通過只創建一個「靜態」子目錄中嵌入靜態文件。

如果你不理解Django是如何幫助在處理靜態文件非常好,你可以試試這個文章surviving django staticfiles

+0

,但它會更容易部署,特別是當性能不是問題時,你會想要。 – Topro

+0

Django的靜態文件系統很棒,事實上很多人在它被包含到django之前就已經使用它了(請參閱django-staticfiles應用程序)。我深信,任何願意付出一點努力的人都可以充分理解並發現它太棒了。 – jpic

2

你不是真的想讓Django從性能的角度來提供靜態文件。沒有理由向Django實例發送請求,然後在Web服務器自行完成時更快地讓Python返回文件。

0

你可以使用它在生產中使用容易

python manage.py runserver 0.0.0.0:80

和網站將工作就像在發展。 同樣,不建議..但是工作

在真實世界的情況下,你更喜歡一些其他的Web服務器服務的原因有很多靜態文件(在其他的答案中提到)

相關問題