我正在計劃一個新的Django項目,並希望獲得一切正確和東西。我偶然發現如何組織項目目錄佈局的問題。幸運的是,網上有很多好的項目模板的例子。儘管如此,還有一件事我很難理解:Django中的模板和靜態文件的位置
這是將模板文件放入項目根目錄下的推薦方式,該項目根目錄由應用程序劃分爲子目錄。所以,模板不在應用程序目錄中。這對我來說似乎合乎邏輯,因爲我們要將應用程序邏輯與表示邏輯分開。但是靜態文件呢?在這裏,通常的做法似乎是將靜態文件放在應用程序目錄中,並在開發時將它們加載到項目根目錄下的靜態目錄(collectstatic)中。而這個邏輯我不明白。由於靜態文件(即js,css,圖像)通常在模板中訪問,而不是在應用程序代碼中訪問,所以我會將它們計算爲表示邏輯。那爲什麼他們不像模板那樣存儲 - 項目根目錄下的一個目錄,以及單個應用程序的子目錄?
我知道我可以將這些文件存儲在任何我想要的地方,但我想這可能是人們爲什麼這樣做的一個很好的理由。這是什麼原因?
我發現在應用程序目錄中組織模板和靜態文件對於可插入應用程序來說很合理。但是,如果我不打算創建可插拔應用程序,沒有任何好處,不是嗎?每次部署我的項目的新版本時,我只需要調用'collectstatic'的開銷。 – j0ker 2012-02-03 17:15:47
@ J0ker,這是可辯論的,完全是你的呼叫。有時,如果它是一個獨立打包的應用程序,我發現自己使用'app/static'。其他時候,對於一組與所有核心網站相關的應用程序,我只需使用我的'site_media'文件夾。調用「collectstatic」的開銷因爲我使用無論如何使用它的結構腳本而被移除。 PLUS <如果您配置了staticfiles存儲後端,您可以將collectstatic上傳到amazon S3非常有用。 – 2012-02-03 17:46:43