当新的更新可用时,Angular 4 PWA服务工作者不会更新

时间:2017-09-12 15:08:00

标签: javascript angular service-worker

在我更新我的Angular 4 PWA应用程序并进行部署后,用户无法获得新的更新,直到用户清除缓存并刷新浏览器。 Sw没有更新。 即使我按下crome Dev中的更新按钮它也没有更新我必须清除缓存并刷新浏览器。

我用过这些包裹 @ angular / service-worker @ angular / platform-server ng-pwa-tools

2 个答案:

答案 0 :(得分:1)

根据您提供的信息,我猜您的网络服务器正在为SW文件提供一些缓存标头,访问者的浏览器使用缓存版本。

确保将缓存标头显式设置为no-cache / -1 / etc。以便浏览器始终检查Web服务器是否有新版本的service-worker.js(或其他)文件。

答案 1 :(得分:0)

确保您的应用在不定时上从服务器检查更新

app.component.ts中,将private swUpdate: SwUpdate添加到构造函数中。

 this.swUpdate.available.subscribe(event => {
   if (confirm('Update Available. Refresh the page now to update the cache.')) {
     location.reload(true);
   } else {
     console.log('continue with the older version');
   }
 });

 setInterval(() =>  {
   this.swUpdate.checkForUpdate();
 }, 21600);