0

我正在使用django-storages GCP 存储后端从存储桶为我的站点提供静态服务。但是,我在将background-imageCSS 属性与 django 的{% static %}标签结合使用时遇到了问题。特别是,我在页面中嵌入了以下 CSS:

<style> 
.my-background {
     background-image: url({% static 'foo/bar/example.jpg' %});
}
</style>

然后,如果我在页面的 HTML 中包含以下内容:

<div class="my-background"></div>
<img src="{% static 'foo/bar/example.jpg' %}">

<img>标签可以很好地检索图像,但是background-image从存储桶调用返回的 AccessDenied 会出现 403 错误。我不知道为什么他们应该被区别对待,非常感谢任何帮助。

4

1 回答 1

1

我想出了一个解决方案:background-image: url({% static 'foo/bar/example.jpg' %})在单独的<style>标签中包含 失败,但如果背景图像是用内联样式指定的,它就可以工作。我怀疑这是由于 django 存储使用签名的 URL 来访问存储桶,它可能在加载样式标签和调用存储桶之间过期。

于 2020-09-15T14:29:37.950 回答