【问题标题】:start_url problem The start_url did respond, but not via a service worker. it works on local perectly but not on serverstart_url 问题 start_url 确实响应了,但不是通过服务工作者。它可以在本地工作,但不能在服务器上工作
【发布时间】:2021-03-27 13:41:12
【问题描述】:

我是服务人员的新手。 start_url 在 manifest.json 中定义。一切都在 localhost 上完美运行,PWA 选项都是绿色的。但是在服务器上,此消息显示“当离线 start_url 确实响应时,start_url 没有响应 200,但不是通过服务工作者。” 网站是“https://www.zamanha.com/”,服务人员是“https://www.zamanha.com/manifest.json”,服务人员处理程序是“https://www.zamanha.com/main.js”,服务人员是“https://www.zamanha.com/sw.js”,谁能帮帮我。我到处检查了所有解决方案,这让我发疯。

【问题讨论】:

  • 在服务工作者的 fetch 事件中,您可以将其更改为 cache.match(event.request.url) 而不是匹配请求对象并尝试。
  • 谢谢。它可以工作,但是当我更改页面时出现错误“清单:行:1,列:1,语法错误。”
  • 你在哪里得到这个错误。?能否请您提及重现该步骤的步骤?
  • 对不起。这是我的错。问题是在第 74 行 service worker 出错后它没有继续 offlien
  • 那是因为您的应用程序正在使用 jquery-3.5.1.min.js 并且在您的 sw 缓存列表中您指定了 jquery-3.4.1.min.js 版本。请在这两个地方使用相同的版本,并确保缓存您的应用程序使用的所有静态文件,以使应用程序在离线模式下工作。

标签: progressive-web-apps service-worker


【解决方案1】:

正如 Vimal Patel 所回答的,它应该只是将 (cache.match(evt.request) 更改为 cache.match(evt.request.url)

【讨论】:

    【解决方案2】:

    最初,当您将请求对象直接与缓存匹配时,出于某种原因(主要是由于请求标头),即使该文件在缓存中,它也会返回 undefined。更改它以根据 url 获取文件将正确获取资源。

    jQuery 版本不匹配。您的应用程序正在使用 jquery-3.5.1.min.js,并且在您的 service worker 缓存列表中您指定了 jquery-3.4.1.min.js 版本。因为那个应用程序没有在离线模式下工作。

    如果您的应用程序需要离线工作,请确保缓存所有静态文件,以便您的应用程序在离线模式下工作,因为所有需要的文件都是从缓存中提供的。

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      相关资源
      最近更新 更多