我在Amazon S3上托管了一个静态网站。我经常更新它。但是我发现很多访问它的用户正在查看陈旧的副本。
顺便说一句,该网站是:http://cosi165a-f2016.s3-website-us-west-2.amazonaws.com)并且它生成了一个名为nanoc的ruby静态站点生成器(顺便说一下非常好)。它将网站的源材料https://github.com/Coursegen/cosi165a-f2016编译成html,css,js和其他文件。
我认为这与页面新鲜度以及浏览器缓存页面的事实有关。
如何确保我的用户看到新页面?
答案 0 :(得分:1)
一种常见的技术是在将静态资产更新为S3时跟踪上一个时间戳,然后将该时间戳用作html中的查询字符串参数。
像这样:
<script src="//assets.com/app.min.js?1474399850"></script>
浏览器仍将缓存该结果,但如果时间戳发生变化,浏览器必须获得新副本。
该技术被称为&#34; cachebusting&#34;。
如果您使用grunt:https://www.npmjs.com/package/grunt-cachebuster,那就是一个grunt模块。它将计算资产内容的哈希值,并将其用作文件名。