Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PWA serviceWorker并非始终注册_Javascript_Service Worker_Progressive Web Apps - Fatal编程技术网

Javascript PWA serviceWorker并非始终注册

Javascript PWA serviceWorker并非始终注册,javascript,service-worker,progressive-web-apps,Javascript,Service Worker,Progressive Web Apps,我们有内部构建的CMS,最近我们在其中添加了PWA。现在,当访问主页www.ourdomain.com时,一切正常,但当访问文章时,我们是一个新闻网站,如www.ourdomain.com/section/article,会出现一条消息: 注册ServiceWorker失败:收到错误的HTTP响应代码(404) 获取脚本时接收到的消息 首先,范围是 / 在这种情况下,服务人员根本没有注册 现在我将范围更改为 / 它不是在主页上注册的,但不是在任何文章上注册的。我看了文件,阅读了问题和答案,但似乎

我们有内部构建的CMS,最近我们在其中添加了PWA。现在,当访问主页www.ourdomain.com时,一切正常,但当访问文章时,我们是一个新闻网站,如www.ourdomain.com/section/article,会出现一条消息:

注册ServiceWorker失败:收到错误的HTTP响应代码(404) 获取脚本时接收到的消息

首先,范围是

/

在这种情况下,服务人员根本没有注册

现在我将范围更改为

/


它不是在主页上注册的,但不是在任何文章上注册的。我看了文件,阅读了问题和答案,但似乎无法解决这个问题。顺便说一句,PWA在移动设备上安装得很好,而且运行得很好。

您的service worker js文件最好位于您应用程序的根公共目录中,因为您刚刚开始使用PWA,指定正确的范围非常重要,下面是从安装service worker的完美示例

  • main.js
  • service worker.js
  • 希望您的根目录中有
    /service worker.js
    main.js
    ,并且如果您开始使用清单,您将呈现与


    您可以在应用程序的公共根目录上尝试上述安装片段。

    您的service worker js文件最好位于应用程序的根公共目录中,因为您刚刚开始使用PWAs,指定正确的范围至关重要,下面是从安装service worker的完美示例

  • main.js
  • service worker.js
  • 希望您的根目录中有
    /service worker.js
    main.js
    ,并且如果您开始使用清单,您将呈现与


    您可以在应用程序公用根目录上尝试上述安装代码段。

    您可能需要发布注册脚本的一些代码,您可能需要发布注册脚本的一些代码,谢谢。js文件确实在根目录中。我刚刚注意到一件有趣的事情:Chrome中的控制台说每个页面都很好,而web.dev说serviceWorker只是为主页注册的。所以,这些是相互冲突的信息,我不确定console或web.dev是否正确。谢谢。js文件确实在根目录中。我刚刚注意到一件有趣的事情:Chrome中的控制台说每个页面都很好,而web.dev说serviceWorker只是为主页注册的。所以,这些是相互冲突的信息,我不确定console或web.dev是否正确。
    if ('serviceWorker' in navigator) {
      navigator.serviceWorker.register('/service-worker.js')
      .then(function(registration) {
        console.log('Registration successful, scope is:', registration.scope);
      })
      .catch(function(error) {
        console.log('Service worker registration failed, error:', error);
      });
    }