Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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 服务人员注册不返回_Javascript_Django_Service Worker_Web Push - Fatal编程技术网

Javascript 服务人员注册不返回

Javascript 服务人员注册不返回,javascript,django,service-worker,web-push,Javascript,Django,Service Worker,Web Push,我有一个apache服务器正在运行。django支持后端,但将其放在apache服务器上。我有一个服务人员,在其他方面工作完全正常。这是进行注册的代码 navigator.serviceWorker.register('/static/js/components/sw.js').then(function() { return navigator.serviceWorker.ready; })

我有一个apache服务器正在运行。django支持后端,但将其放在apache服务器上。我有一个服务人员,在其他方面工作完全正常。这是进行注册的代码

navigator.serviceWorker.register('/static/js/components/sw.js').then(function() {
                            return navigator.serviceWorker.ready;
                        }).then(function(){console.log("success")})
但上面的代码不知何故从未给出任何响应。该承诺仍处于待定状态。 即使在末尾添加一个catch也不会产生任何错误。它会转到navigator.serviceworner.ready,但不会解析为then函数。我不确定是什么问题

我试过以下方法:

  • 我认为问题可能是服务人员需要来自同一个来源,所以我添加了名为serviceworneralized:/static的标题,但这并没有完成工作

  • 当我通过直接访问路径访问文件时,添加允许的服务人员:/static后,html被保存(例如:mywebsite/static/serviceworker.html),它工作正常。但是当我使用django映射的url(即我通过url.py映射的url,例如:mywebsite/admin/worker)访问同一个html文件时,它似乎不起作用

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

  • 我把它放在另一台apache服务器上,在那里它似乎工作得很好

我没有什么主意了。这是django的问题吗?

我在这个链接中找到了上述问题的答案 唯一的问题是我通过url.py文件给出了sw.js文件的路径

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

您在注册期间提供的域/路径

或者,如果您设置了一个允许的服务工作者:/path,则它将是

您在注册期间提供的域/路径/路径


因此,您需要进行适当的更改,以使您的服务人员可用。

同样适用于您的问题。但它没有说明我所面临的问题。如果我使用绝对路径(mywebsite/service\u worker.html),那么它就可以正常工作。但是,如果我给出了我放在django url.py中的路径,并使用其他url(mywebsite/admin/worker/)访问相同的html,那么即使它是同一个文件,它也无法工作。两种情况下的范围应该相同,对吗?它将始终是/static/somedirectory。但是它不起作用。我从这篇文章中得到了答案