2

所以我用 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');
    }
  }
}

我希望能够在网站上呈现全新的内容,而不是让它缓存数周......

4

0 回答 0