我正在使用s3
存储桶来托管我的网站。每当我发布新版本的网站时,我都希望所有客户端从s3下载,而不是从浏览器缓存中读取。我知道我可以为保存在s3
bucket上的对象设置一个过期时间,但这不是一个理想的解决方案,因为用户必须在一段时间内使用缓存的内容。如果s3 bucket中的内容发生了更改,有没有办法强制浏览器下载这些内容?
无论您是使用s3 bucket进行托管还是使用任何其他托管服务器,都可以通过在文件名后面添加哈希数来控制缓存。
例如,您的js文件包名称应该类似于bundle.7e2c49a622975ebd9b7e.js
。当您再次部署它时,它将更改为其他一些哈希值bundle.205199ab45963f6a62ec.js
。通过这样做,浏览器会自动知道,新文件已经到达,应该再次下载。
这可以很容易地使用任何流行的捆绑器,如咕哝,吞咽,网络包。webpack示例