我一直在使用 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/