我發現了很多關於如何在Django 1.x中解決靜態文件的建議。是否有最佳做法的方式去做?在Django目前提供靜態文件的最佳做法是什麼
回答
在Django中可能有方法來提供靜態文件,但Django 1.3引入了一個新的選項來處理它們。基本上,您可以在包含靜態媒體的項目級別或應用程序級別定義特定目錄。然後通過管理命令'collectstatic',可以將項目目錄中的所有靜態文件複製到Web服務器提供的單獨目錄(可能在項目外部)。這解決了以前方法的許多複雜問題。
1)它允許第三方應用程序以標準方式輕鬆包含靜態文件。不再需要從您的web服務器目錄創建符號鏈接到各個python/django模塊中的位置。
2)它使您可以更好地控制Web服務器可以託管其靜態文件的位置。例如,您可以在版本控制下定義項目內的所有靜態媒體,但將其全部複製到文件系統任何位置的外部位置。這樣可以避免必須將Web服務器指向項目內的某個位置。
3)分離靜態媒體,永遠不會改變靜態媒體,由用戶使用像FileField一樣上傳的靜態媒體。這很好,因爲您可能希望將站點級靜態媒體保存在版本控制中(要安裝在您的開發服務器上),但用戶提交的內容將上傳到不同的目錄(與1.3版之前的django版本不同)。
我認爲這個功能曾經是合併到核心的第三方模塊。
下面是文檔: https://docs.djangoproject.com/en/dev/howto/static-files/
基本上有一些新的settings.py變量:
STATIC_ROOT - 這是你的文件系統,將您的網絡服務器提供服務的目錄。運行./manage.py collectstatic時,項目中的所有靜態文件及其應用程序都將被複制到您在此處指定的目錄中。
STATIC_URL - 這是您將設置用來表示您的內容將基於哪個網址的網址。如果你將這個值設置爲「/ static /」,那麼「/ static /」將作爲所有靜態介質URL的前綴。你也將在你的模板中使用這個變量。例如,在你的模板,你可以指定類似:其中靜態文件複製到
<img src="{{ STATIC_URL }}logo.png">
的STATIC_ROOT設置變量指定的,但你也需要提供其中的靜態文件從複製的位置。這可以通過在單個Django應用程序中創建一個名爲「static //」的目錄來完成,類似於您在應用程序中對模板所做的操作。在運行collectstatic命令時,Django會將所有應用程序中所有「靜態/」目錄中的所有靜態文件複製到STATIC_ROOT目錄。您也可以使用STATICFILES_DIRS設置變量來定義項目級目錄以從中複製靜態媒體。
雖然靜態媒體有很多種服務方式,但我認爲這是Django設置的一個很好的API,它有助於更好地集成第三方模塊。這個特徵現在被包含在覈心中的事實可以表明這種方法可能獲得了一些動力。
希望這有助於 喬
- 1. Django,提供靜態文件
- 2. Django提供靜態文件
- 3. 無法提供靜態文件,Django 1.6
- 4. 在OpenShift中提供Django靜態文件
- 5. 在Heroku上提供Django靜態文件
- 6. 提供支持取消的方法/類/組件的最佳做法是什麼?
- 7. 最佳做法是什麼?
- 8. node.js,express.js - 提供單個靜態文件的最簡單方法是什麼?
- 9. 目前隱藏H1的最佳做法是什麼?
- 10. 瀏覽器檢測目前的最佳做法是什麼
- 11. django用nginx提供靜態文件
- 12. Django和提供靜態文件
- 13. Apache不會提供Django靜態文件
- 14. Django升級:不提供靜態文件
- 15. Django未提供靜態文件
- 16. Django和Apache不提供靜態文件
- 17. 用Django提供靜態文件
- 18. NGINX爲Django App提供靜態文件
- 19. Nginx沒有提供Django靜態文件
- 20. Django + nginx提供私人靜態文件
- 21. Django 1.7 - 提供靜態文件
- 22. django:通過nginx提供靜態文件
- 23. 什麼是在C#中的文件處理的最佳做法?
- 24. 通過Flash提供最高品質的視頻體驗,您的最佳提示/最佳做法是什麼?
- 25. 在線發佈/ doc文件夾的最佳做法是什麼
- 26. 寧靜的網址的最佳做法是什麼?
- 27. Django項目提供多個應用程序的靜態文件
- 28. 在django中捕獲瞬時模型狀態的最佳做法是什麼?
- 29. log4cxx的最佳做法是什麼?
- 30. 什麼是ViewModel的最佳做法
Django的2.x的是嗎? – DrTyrsa
不,它沒有發佈,如果這是你的意思...問題改變,所以它實際上是有道理的。感謝您的反饋。 – SMTF