0

我有一个使用 Angular 6 和 @angular/pwa npm 包构建的 PWA,并使用 adal-angular4 npm 包进行身份验证(但如果需要,可以从头开始重建它——我认为问题不是包中的错误)

在尝试进行身份验证时,虽然它确实有效,但用户经常会收到未找到的消息(控制台的屏幕截图,但它相同)。

如果您已经通过另一个(或本身)Azure AD 产品的身份验证,情况尤其如此。它通常应该只加载一段时间,然后让用户进入。

服务工作者错误记录:

Failed to load 'link.com/#LONGTOKEN' A serviceWorker passed a promise 
to FetchEvent.respondWith() that rejected with 'Error: Response not Ok 
(fetchAndCacheOnce): request for LINK.com/index.html returned response 404 Not Found'.
4

1 回答 1

0

似乎编写一个函数来检查 PWA 的新版本已经清理了一切。因为它是 PWA,所以在用新版本替换文件时——缓存仍然存在,并且 shift+reloading 不一定会清除它,从而导致很多不需要的行为。

清理代码如下所示:

首先,在构造函数中注入以下内容:updates: SwUpdate

import { SwUpdate } from "@angular/service-worker"

然后,在 ngOnInit 中,我有以下内容:

updates.available.subscribe(event => { updates.activateUpdate().then(() => document.location.reload()); })

如果有可用的新版本,它将在 2-3 秒内强制完全刷新,但之后一切正常。

于 2018-10-11T15:08:25.403 回答