2011-08-02 50 views
0

出於某種原因,我無法弄清楚,除了當我嘗試在我的Django應用程序中訪問media文件(由用戶上傳的文件)時繼續爬行的「愚蠢」錯誤,爲什麼我不能服務器media文件!在Django開發服務器上通過Apache提供媒體文件?

在這種特殊情況下,我想要的所有例子都是能夠將圖像提供給上傳的前端。我的up通過/static/正確地提供靜態文件,但是當我嘗試服務我的/site_media/文件時,地獄崩潰了!我可能做錯了什麼?

因此,在意識到Django本質上不是真正處理媒體文件後,我決定採用推薦的mod_python選項來使用Apache,就像它推薦在生產中一樣。但我從來沒有這樣做過,並且想知道這是否值得開發服務器上的麻煩。

嗯,我知道最終我有,當我去生產走上這條道路,所以仍然要學習如何做到這一點,但什麼都爲開發服務器上這條路線的利弊?

回答

0

這無疑是一個親,因爲Django的服務請求更快,而不必與媒體打交道。

一個騙局是,如果和當你編輯媒體,你還需要重新啓動apache,爲媒體刷新。

根據你的意見更新:

你當然可以輕鬆地做到這一點。我練習這種方法的一個簡單方法是,使用nginx並將媒體文件夾符號鏈接到啓用nginx的站點,並在端口80(或任何其他站點)上運行nginx。

你可以在你的設置,你點它與相應的端口的URL設置MEDIA_URL。

+0

但這是可能的,不,問題是我如何把它關閉?我是否也使用apache在與Django相同的端口上提供文件?無論如何,我並不想使用'mod_python',只是想讓Apache處理媒體,剩下的則留給Django。任何提示或指針?謝謝 – nemesisfixx

0

首先,mod_python是而不是推薦。實際上,特別推薦。改用mod_wsgi。

其次,我們告訴你在做什麼錯通過開發服務器支持靜態媒體的時候,因爲你沒有提供您設置的代碼或細節沒有可能的方式。

最後,沒有理由不能使用Apache - 甚至更好,像nginx這樣的輕量級服務器 - 並且只將它指向靜態目錄。然後,將settings.py中的STATIC_URL設置爲該服務器提供的地址。在開發過程中,它所處的端口沒有區別。

相關問題