在django中,文檔要求使用絕對路徑而不是相對路徑。爲什麼在django中模板和css的絕對路徑? (這不是一個壞習慣嗎?)
那麼,他們如何管理可移植性?
如果我有我的模板在項目文件夾然後,即使文件夾的重命名將導致破損..!
那麼這種做法背後的原因是什麼?
請解釋一下嗎?
在django中,文檔要求使用絕對路徑而不是相對路徑。爲什麼在django中模板和css的絕對路徑? (這不是一個壞習慣嗎?)
那麼,他們如何管理可移植性?
如果我有我的模板在項目文件夾然後,即使文件夾的重命名將導致破損..!
那麼這種做法背後的原因是什麼?
請解釋一下嗎?
您可以發佈一個鏈接到那篇文檔嗎?
在Django中,您可以在settings.py中配置模板的搜索路徑(通過TEMPLATE_DIRS變量)。然後,在視圖內,您將渲染一個模板,將其文件命名爲TEMPLATE_DIRS中包含的某個路徑。這樣,只要你移動你的模板目錄,你只需要修改你的settings.py
對於靜態文件,如CSS文檔,Django不需要知道任何關於它們(除非你通過django本身提供靜態文件,這是django的文檔所不鼓勵的):你只需要告訴你的web服務器在哪裏找到它們。
我將環境從Linux桌面切換到Windows筆記本電腦,因此硬編碼路徑也不適用於我。
可能有更好的方法來做到這一點,但我寫了這個功能去我的settings.py的頂部得到我的項目從一個相對路徑的絕對路徑:
#settings.py
import os
def map_path(directory_name):
return os.path.join(os.path.dirname(__file__), \
directory_name).replace('\\', '/')
那允許我做:
MEDIA_ROOT = map_path('static')
TEMPLATE_DIRS = (
map_path('templates'),
)
「靜態」和「模板」生活在我的項目根目錄下。希望能幫助你。