我正在为我的多页Web应用程序注册服务工作者,这是第一次请求,任何新页面都请求或刷新,它不再请求服务工作者文件,这意味着没有代码在运行。我无法缓存我的资源。
环境: 后端:WCS Webspere服务器。
服务工作者的网址:/wcs/service-worker.js
目录结构:/webContent/service-worker.js
注意:关于URL,所有URL都是合乎逻辑的,它们与物理结构不匹配。我所有页面的URL前缀都是/ wcs /
期望: 每次我打开网站时,都会在控制台中收到以下消息:
是的!已加载工作箱?
当前行为:它只是在第一次(即在注册时)显示消息
注册代码:
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/wcs/service-worker.js')
.then(registration => {
console.log(`Service Worker registered!`, registration.scope);
})
.catch(err => {
console.log(`Service Worker registration failed: ${err}`);
});
});
}
server-worker.js
importScripts('https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js');
if (workbox) {
console.log(`Yay! Workbox is loaded ?`);
workbox.routing.registerRoute(
/\.js$/,
new workbox.strategies.NetworkFirst()
);
} else {
console.log(`Boo! Workbox didn't load ?`);
}
为服务人员附加了HTTP请求示例, Referer 标头与服务人员文件所请求的URL相同。