2016-04-28 58 views
0

在龍捲風的html模板中,關於指定靜態文件路徑的一個建議是我們應該使用static_url而不是對路徑進行硬編碼。例如,Tornado:外部css文件中的url

<link rel="stylesheet" type="text/css" href="{{static_url("css/frontpage.css")}}">  

但是,如果我嘗試做外部「frontpage.css」文件類似的東西,如

body { 
background-image: static_url("img/bgimg.jpg"); 
background-repeat: no-repeat;} 

當然這是行不通的,我可以硬編碼路徑爲「/static/img/bgimg.jpg」以避免這種情況。不過,我認爲應該有一個更合適的方式來處理這個問題。任何建議,將不勝感激!

回答

0

由於您在css中的url被定義爲相對url,所以您應該沒問題,因爲它會相對於css文件。您希望在html模板中使用static_url的原因是,您可以輕鬆地將靜態資產重新定位到CDN或其他Web服務器,以使其不會從龍捲風實例提供服務。

+0

使用static_url的另一個好處是「static_url函數根據文件的內容創建一個散列並將其附加到URL的末尾,這可以確保瀏覽器始終加載最新版本的文件,而不是依靠先前的緩存版本「。考慮到它的影響,只是不太確定在css文件中對url進行硬編碼的方式。因此,如果稍後重新部署到另一個Web服務器,這應該也會相應地進行修改? –