我正在使用s3
存储桶来托管我的网站。每当我发布网站的新版本时,我都希望所有客户端都从s3下载它,而不是从其浏览器缓存中读取。我知道我可以为s3
存储桶中保存的对象设置过期时间,但这不是一个理想的解决方案,因为用户必须使用缓存的内容一段时间。如果在s3存储桶中更改了内容,是否可以强制浏览器下载内容?
答案 0 :(得分:1)
无论您是使用s3存储桶托管还是其他托管服务器,都可以通过在文件名后附加哈希码来控制缓存。
例如,您的js文件捆绑包名称应类似于bundle.7e2c49a622975ebd9b7e.js
。
当您再次部署它时,它将更改为其他哈希值bundle.205199ab45963f6a62ec.js
。
这样,浏览器会自动知道新文件已到达,应重新下载。
可以使用任何流行的捆绑器(例如grunt,gulp,webpack)轻松完成此操作。 webpack example