所以我用 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');
}
}
}
我希望能够在网站上呈现全新的内容,而不是让它缓存数周......