服务人员登记不归还

时间:2016-03-23 14:23:58

标签: javascript django service-worker web-push

我正在运行一个apache服务器。这样的后端由django支持,但放在apache服务器上。我有一个服务工作者,否则完全正常。这是进行注册的代码

navigator.serviceWorker.register('/static/js/components/sw.js').then(function() {
                            return navigator.serviceWorker.ready;
                        }).then(function(){console.log("success")})

但是上面的代码不知何故都没有给出任何回应。承诺仍处于未决状态。 即使在最后添加一个捕获也不会产生任何错误。它转到navigator.serviceworker.ready但不解析为then函数。我不确定是什么问题。

我尝试了以下内容:

  • 我虽然问题可能是服务工作者需要在同一个来源,所以所以我添加了名为Service-Worker-Allowed的头:/ static但是没有做到这一点。

  • 当我通过直接访问路径访问文件时,在添加 Service-Worker-Allowed:/ static 之后保存了html(例如:mywebsite / static / serviceworker.html)工作得很好。但是当我通过使用django映射的url(即我通过urls.py映射的url,例如:mywebsite / admin / worker)访问相同的html文件时,它似乎没有用。

  • 试图给出相对路径,但相对路径在我的情况下不起作用。

  • 我把它放在另一个apache服务器上,似乎工作正常。

我没有想法。这是一些django问题吗?

1 个答案:

答案 0 :(得分:0)

我在这个链接中得到了上述问题的答案 Implementing push notification using chrome in Django 唯一的问题是我通过urls.py文件给出了sw.js文件的路径。

基本上,这个想法是服务工作者注册要求工作人员出现在同一个域中,例如

yourdomain / path_which_you_gave_during_registration

或者如果您设置了 Service-Worker-Allowed:/ path ,那么它将

yourdomain / path / path_which_you_gave_during_registration

因此,您需要对服务工作人员进行适当的更改才能使用。

相关问题