如何确保静态网站页面是新鲜的?

时间:2016-09-20 19:23:21

标签: web

我在Amazon S3上托管了一个静态网站。我经常更新它。但是我发现很多访问它的用户正在查看陈旧的副本。

顺便说一句,该网站是:http://cosi165a-f2016.s3-website-us-west-2.amazonaws.com)并且它生成了一个名为nanoc的ruby静态站点生成器(顺便说一下非常好)。它将网站的源材料https://github.com/Coursegen/cosi165a-f2016编译成html,css,js和其他文件。

我认为这与页面新鲜度以及浏览器缓存页面的事实有关。

如何确保我的用户看到新页面?

1 个答案:

答案 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模块。它将计算资产内容的哈希值,并将其用作文件名。