所以我用vue.js建立了一个网站。它部署在CloudFront发行版后面的AWS s3存储桶上。最近,我发现一些用户看到了2周旧版的网站。这是一个大问题,因为我每天都会更新网站几次。
我将CloudFront TTL设置设置为1分钟,以尝试避免更长的缓存,但这不能解决问题。我尝试按照以下方式实施服务,这会引发很多异常,但没有用。
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
});
}
我也尝试过完全禁用缓存,但没有成功:
module.exports = {
chainWebpack: config => {
if (process.env.NODE_ENV === 'production') {
config.module.rule('vue').uses.delete('cache-loader');
config.module.rule('js').uses.delete('cache-loader');
config.module.rule('ts').uses.delete('cache-loader');
config.module.rule('tsx').uses.delete('cache-loader');
}
}
}
我希望能够代表网站上的全新内容,而不是让它缓存数周。...