如何解决使用Django static从GCP存储桶获取背景图像
我正在使用django-storages GCP存储后端从存储桶向我的站点提供静态服务。但是,将background-image
CSS属性与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
收到403错误,并从存储桶调用返回了AccessDenied。我不知道为什么要区别对待它们,任何帮助都值得赞赏。
解决方法
我想出了一个解决方案:将background-image: url({% static 'foo/bar/example.jpg' %})
包含在单独的<style>
标记中会失败,但是如果以嵌入式样式指定背景图像则可以使用。我怀疑这是由于django存储使用签名的URL访问存储桶而导致的,它可能在加载样式标签和调用存储桶之间已经过期。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。