css - S3 CSS 资源未加载,但之前已加载。为什么会停下来呢?

标签 css amazon-web-services amazon-s3 static

我一直在使用 S3 托管静态网站,并且对 HTML 和 CSS 文件进行了更改,并且在过去看到了这些更改的反射(reflect)。由于某种原因,我去做了之前做过的完全相同的事情,更改了我的一个网站的样式,但没有发生任何变化。事实上,删除所有以前的文件后,旧版本仍在渲染。我对该特定存储桶没有版本控制。

内容类型设置为“text/css”。我的文件结构正常,index.html 位于根目录中。我创建或更新新站点或现有站点的正常步骤没有改变,但 S3 由于某种原因发生了改变。

当我单击index.html 文件并转到公共(public)url 链接时,它会反射(reflect)我的所有更改。

我唯一的解决方法是将完整的 url 添加到样式链接中。

<link href="https://s3.amazonaws.com/{bucket-name}/css/style.css">

有谁知道为什么会发生这种情况,或者除了添加 http 链接之外如何解决它?如果没有,我希望我的解决方案可以帮助其他人解决这个奇怪的 S3 问题。通常,您可以将文件上传到存储桶,设置策略,最后在声明根 html 文件后启用托管。

最佳答案

这可能是由于您的浏览器缓存所致,它会加载您上次访问该 URL 时本地存储的资源(CSS 样式表),而不是获取新资源以尝试加快加载时间。您可以在浏览器中更改一些设置,以确定浏览器在获取新资源之前保留缓存资源的时间。

通过将样式表链接直接设置到 s3 存储桶 URL,将导致每次加载页面时都会获取新的样式表,这让我相信缓存是这里的问题。

尝试清除缓存并查看是否可以解决问题。

Here is a deeper explanation of the concept with respect to browsers, and a list of commands根据您拥有的浏览器/操作系统执行缓存刷新!

关于css - S3 CSS 资源未加载,但之前已加载。为什么会停下来呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563281/

相关文章:

amazon-web-services - 如何使用 CloudWatch 检查您的 AWS RDS 实例是否已关闭

authentication - HTTP 授权 header 和查询字符串参数之间的区别

php - 使用 laravel 将数据库备份到 amazon s3 bucket

ruby-on-rails - AWS S3 禁用 SSLv3 支持

ios - Amazon S3 Cognito 同步

html - 子容器的box-shadow叠加滚动条

jquery - 溢出时移动拖动=隐藏 - jquery

javascript - jquery slidetoggle 不会保持打开状态

amazon-web-services - 如何从 Elastic Beanstalk 实例访问 S3 存储桶中的 docker 配置文件

javascript - 附加一个具有淡入淡出效果的元素 [jQuery]