我是Django的新手。我讀過,部署在生產環境中的所有django項目都應該通過web服務器(如apache)提供媒體文件(上傳)。我的問題是 - 爲什麼是?django在生產中服務媒體文件(與PHP框架比較)
有大量的PHP框架 - 如。 symfony 1和2 - 不遵循規則。一旦你通過網絡服務器訪問你的應用程序,你不需要改變任何東西,這取決於你部署的環境。在web服務器上只配置了DOCUMENT_ROOT
,並且該目錄內的某個位置包含上載目錄 - 就這些了。您可以確定沒有人會訪問PHP,SQL文件等 - 這要歸功於正確的框架體系結構和文檔根目錄。爲什麼它在Django中有所不同?另外,爲不同的環境準備不同的代碼(例如this)是一種相當糟糕的方法,因爲您不能使用完全相同的代碼來在不同的envs中部署項目(並且鏈接中的代碼有意義僅調試ENV。
難道我得到它的權利,使PHP方法比Django的/ Python的方法效率較低,因爲它的工作慢?還有一個問題 - 「在django中,你的代碼是單獨運行的」 - 與PHP框架不一樣?當Web服務器獲得請求時,它執行一個PHP腳本(執行所有框架內容),當PHP腳本結束時,它將響應Web服務器客戶端。區別在哪裏? – ducin 2013-03-22 09:41:16
區別在於文件位置。 – littlepea 2013-03-29 07:34:50
您的PHP文件和您的靜態文件通常都在public_html/htdocs中的任何地方混合,或者任何您的web服務器DOCUMENT_ROOT。在djando中,雖然你的文件通常獨立於web服務器,但django代碼可以在別的地方運行,它甚至可以由一個與擁有web服務器的用戶無關的linux用戶運行。 – littlepea 2013-03-29 07:43:30