为了显示“添加主屏幕”警报,我想集成服务工作者和应用程序的离线功能:当用户离线时,应用程序应该只显示一个特殊的离线 HTML 文件。
我的服务人员看起来像这样:
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.1.0/workbox-sw.js');
const CACHE_VERSION = 1;
workbox.core.setCacheNameDetails({
prefix: 'app',
suffix: 'v' + CACHE_VERSION
});
workbox.routing.registerRoute(
'/offline-page.html',
workbox.strategies.networkFirst({
networkTimeoutSeconds: 2,
cacheableResponse: { statuses: [0, 200] },
})
)
workbox.routing.registerRoute(
({ event }) => event.request.mode === 'navigate',
({ url }) =>
fetch(url.href, { credentials: 'include', redirect: 'follow', }).catch(() => caches.match('/offline-page.html'))
)
但是,一旦我的应用程序返回 302 重定向(例如,在登录或注销后),我会在控制台中收到以下警告消息:
“ https://app.com ”的 FetchEvent 导致网络错误响应:重定向响应用于重定向模式不是“跟随”的请求。
谷歌浏览器会显示一个错误页面 (ERR_FAILED),指出无法访问该网站。
有谁知道如何解决这个问题?