7

新手到金字塔和蟒蛇。我已经能够在我的任何 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}}"

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

谢谢!

4

1 回答 1

11

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

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

或者,如果您从不寻常的位置引用文件(例如,由您的一个视图自动生成的图像)​​,您将不得不将您的 CSS 文件添加为视图,并使用(文本)模板呈现它。

于 2012-09-25T16:26:16.997 回答