我在如何構建我的項目,使得HTML文件的相對路徑工作很困惑。舉例來說,假設我有index.html
,並在其中,我有一個形象。我有一個名爲img
的圖片文件夾,並在裏面我有cat.png
。如何在django項目中構建模板和靜態文件?
所以,我的index.html裏面,我有<img src='img/cat.png'>
。現在,所有這些文件都在我的項目的static
文件夾中,其中STATIC_URL='/static/'
,因此它們得到靜態服務,並且效果很好:由於index.html在/static/
中,因此發現img/cat.png
沒有問題。
但這裏有一個問題:
比方說,我想打的index.html的模板。所以我爲它定義了一條路線,例如/appname/index.html
在urls.py
,我在views.py
中爲該路線製作了一個視圖,該視圖使用我需要的任何數據來呈現該模板。太棒了,現在我提供了這個模板,它的位置是/appname/index.html
。但是,這意味着它將尋找在這條道路所有這些靜態文件,因此,例如,它會尋找貓的形象在/appname/img/cat.png
而不是/static/img/cat.png
。
當然,我可以通過我的index.html
並將每條相對路徑更改爲絕對路徑,但這並不好,因爲那樣我就不必擔心如果我移動文件會發生什麼情況。在我的具體情況,我發現一些javascript我使用負載一些CSS動態的,我不想去和編輯JavaScript來都使用絕對路徑,以及。
那又怎麼樣? Django在提供靜態內容方面不好,我應該使用nginx或apache來代替它?我知道Django應該能夠作爲一個完整的生產服務器,所以我不知道這裏有什麼。有什麼想法嗎?