我一直在开发一个用 HTML、CSS 和 JS 编写的项目,并在屏幕上随机显示不同的视频。我希望它成为一个 PWA,所以它做到了。它工作得很好,但是当我打开 Chrome DevTools 和“应用程序”页面时,在“清单”部分中它会抛出警告:“没有匹配的服务工作线程检测器。您可能需要重新加载页面,或者检查当前页面的 Service Worker 是否也控制清单中的起始 URL。”
\n\n我对 Service Worker 不太了解,我想知道它为什么有效,但似乎不起作用。另一个问题是我从来没有弹出“添加到主屏幕”。但如果我手动添加它,它就可以正常工作。它也可以离线工作。
\n\n网站链接: https: //ondersumer07.github.io/vinematik/
\n\n我的 main.js 中的 Service Worker 代码:
\n\nwindow.addEventListener("load", () => {\n registerSW();\n});\n\nasync function registerSW() {\n if (\'serviceWorker\' in navigator) {\n try {\n await navigator.serviceWorker.register(\'./sw.js\');\n } catch (e) {\n console.log(`SW registration failed`);\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我的 sw.js:
\n\n//CACHING FILES//\nconst filesToCache = [\n \'./\',\n \'./offline.html\',\n \'./css/offline.css\',\n];\n\nconst staticCacheName = \'pages-cache-v2\';\n\nself.addEventListener(\'install\', event => {\n console.log(\'Attempting to install service worker and …Run Code Online (Sandbox Code Playgroud)