问题描述
您可能已经知道,应该将服务人员放置在基本目录中,以使其具有整个项目的范围,否则某些功能(例如navigator.serviceWorker.ready())将不可用。 / p>
我的问题是,我最初将服务工作者放在目录中,但是现在我有点被困住了。
我使用服务工作者来注册和处理Web推送通知,我想知道如果将其移至基本目录是否会丢失所有当前的订阅
解决方法
如果您不想将服务工作者移动到基本目录中。您可以在响应中使用“ Service-Worker-Allowed”标头。如果存在此标头,则即使sw.js文件位于嵌套目录中,您的服务人员也将被注册。
Service-Worker-Allowed header '/'
此处是有关此标头的官方文档。