2016-04-28 57 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服务器,这应该也会相应地进行修改? –