如何链接到css文件中的静态图像?

时间:2012-09-25 16:24:41

标签: python pylons pyramid

newb to pyramid和python。我已经能够在我的任何jinja2模板中成功链接到我的静态文件,即:

<link rel="stylesheet" type="text/css" href="{{'myproject:static/mycss.css'|static_url}}"></link>

.css文件加载正常,我可以链接到我的静态文件夹中的任何图像,只要我在jinja模板中这样做。

我想将图片用作背景,但在链接到我的css文件中的图片时遇到问题:

#mydiv{
background-image:url("{{'myproject:static/myimage.gif'|static_url}}");
}

此链接显示在mycss.css中

"{{'myproject:static/myimage.gif'|static_url}}"

并且不会显示为链接。 (如果我加载外部托管的图像作为我的背景图像,它可以工作)

THX!

1 个答案:

答案 0 :(得分:11)

您的CSS文件是静态文件,因此视为模板。所有静态资源都按原样提供,无需任何处理。

CSS文件中的所有非绝对URL都与加载CSS文件的位置有关;如果您使用background-image:url("myimage.gif"),浏览器会相对于您的CSS文件位置加载图片。由于CSS是从http://yoursite/static/mycss.css加载的,因此图片将从http://yoursite/static/myimage.gif加载。

或者,如果您引用来自异常位置的文件(例如,您的某个视图自动生成的图像)​​,则必须将CSS文件添加为视图,并使用(文本)模板进行渲染