2016-11-14 28 views
0

我想了解以下內容:爲什麼將文件上傳到Django的靜態目錄,而不是直接Django的靜態根

1)你爲什麼要上傳的文件爲靜態目錄並運行「collectstatic」,而不是直接上傳到靜態根folder.I知道這聽起來有點不安全,沒有得到文件通過Python運行第一,但仍..

2)當您運行「collectstatic」命令它是做什麼的靜態文件

3)什麼可以是直接上傳到靜態根的結果和替代這個,這不只是limi如果他們擁有相同的工作流程來上傳所有的靜態文件,那麼他們可以使用django框架,但可以訪問整個web開發社區。

+0

你的意思是屬於您的網站(其.css文件等),或者由用戶上傳的文件的靜態文件? – RemcoGerlich

回答

2

你爲什麼要上傳的文件爲靜態目錄並運行 「collectstatic」

如果你談論的是用戶提交的內容,你應該definitly 上傳到任何靜態目錄 - 這是什麼是「MEDIA_ROOT」和「MEDIA_URL」。 「靜態」文件是您的應用程序或項目的資產(樣式表,js等),您將其保留在版本控制之下。

,爲什麼你不直接把這些靜態文件中的「靜態根」:

  • 第一,因爲你要保持版本控制下的那些文件(它們是你的源代碼的一部分),但直接從前臺Web服務器提供服務,甚至最終從一個獨立的服務器(cdn或whatesoever)提供服務,因此您無法直接從項目樹中爲它們服務,它們必須位於frontserver(或其他任何位置)的某個位置。

  • 也因爲你想獲得全部這些靜態文件 - 你的項目的特定的,但也是來自你正在使用的第三方應用程序的任何靜態文件。

,回答你的第二個問題:collectstatic會,主要是,尋找所有的或您的靜態文件(根據您的設置),並將其複製到STATIC_ROOT。它也可能應用額外的處理,這取決於你的靜態文件存儲。

注意all thisfully documented FWIW