【发布时间】:2016-03-27 03:53:01
【问题描述】:
我已经学会了使用 chrome https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web?hl=en 为 Web 应用程序实现推送通知,并成功运行了博客中提到的示例代码。
不幸的是,我无法复制 Django 的成功。它永远不会进入 service worker 的 ready 方法,(navigator.serviceWorker.ready.then) 即,service worker 永远不会准备好。
根据http://www.html5rocks.com/en/tutorials/service-worker/introduction/
注册方法的一个微妙之处是服务的位置 工人档案。在这种情况下,您会注意到 service worker 文件 位于域的根目录。这意味着服务工作者的 范围将是整个起源。换句话说,这个服务工作者 将接收此域上所有内容的 fetch 事件。要是我们 在 /example/sw.js 中注册 service worker 文件,然后注册服务 worker 只会看到 URL 以开头的页面的 fetch 事件 /example/(即 /example/page1/、/example/page2/)。
在 Django 中,如何将一个 JS 文件放在应用程序的根目录下?目前,service worker 的作用域是:http://127.0.0.1:8000/static/(当我使用 chrome://serviceworker-internals/ 时)
【问题讨论】:
标签: javascript django google-chrome push-notification service-worker