【问题标题】:Service worker fetch event is never firedService Worker fetch 事件永远不会被触发
【发布时间】:2018-07-25 07:22:55
【问题描述】:

我正在使用 Laravel 开发渐进式 Web 应用程序。我已经推荐PWA with Laravel 进行开发。首先我生成了服务工作者,然后在设置清单文件之后更新了 laravel mix。在布局中,我检查了服务工作者和推送通知支持。注册 Service Worker 后,安装和激活成功触发,但即使浏览器设置为离线,也不会触发 fetch 事件,如图 browser offline 所示。也参考了这个视频PWA LARAVEL。 package.json 文件代码如图:package.json webpack.config.js 文件代码为:webpack.config.js,blade(view) 中注册Service Worker 的部分代码为:service-worker registration。 Service Worker 是在我的 laravel 项目的公共文件夹中生成的。我是 Laravel 和 PWA 的新手。谢谢。

【问题讨论】:

  • 您是否使用 chrome lighthouse 审计开发工具检查了 HTTPS URL?这可能会给你一些线索。
  • 我进行了审计,要求使用 service-worker 离线工作,但我已经在使用 service worker。
  • 你能分享你用于审计工具的 URL 吗?如果不是,报告中哪个项目下的确切信息是什么?
  • 它显示消息为“离线时不响应 200:如果您正在构建渐进式 Web 应用程序,请考虑使用服务工作者,以便您的应用程序可以离线工作”。
  • 可能找不到/加载您的服务人员。

标签: laravel-5.3 service-worker progressive-web-apps pwa service-worker-events


【解决方案1】:

我得到了答案。实际上,在我的 laravel 项目中,我已经从 url 中删除了 public。但是 service worker 会接收到其域中所有内容的 fetch 事件;也就是说,如果我们在 /example/sw.js 中注册 service worker 文件,那么 service worker 只会看到 URL 以 /example/ 开头的页面(即 /example/page1/、/example/page2/)的 fetch 事件。所以我应该将我的 url 模式更改为 public。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2018-04-28
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多