在实现Web推送通知时,我必须在我的JS代码中添加一个service-worker文件位置。
navigator.serviceWorker.register('/service-worker.js')
我可以在CDN或Google云端硬盘中托管此服务工作者文件吗?
答案 0 :(得分:4)
您的服务工作者JavaScript文件(传递到navigator.serviceWorker.register()
的文件)不能存在于其控制的网页的其他域中。如果您的网站是从https://www.example.com/
投放的,那么您无法从https://www.somecdn.com/
提供服务工作者JavaScript文件。您必须确保所有网页和服务工作者文件都来自同一个域,但该单个域是否与CDN服务器相对应或其他不重要。
此外,服务工作者脚本文件的路径会影响服务工作者控件的最大范围,您通常需要将服务工作者脚本文件放在"顶级& #34;如果您想控制网站上的所有页面,请访问您的网站。此other Stack Overflow response中有更多信息。