Spring MVC的服务工作人员提取活动处理程序



我正在尝试一个具有离线功能的弹簧MVC应用程序。除了获取处理程序外,所有功能都很好。

问题:

我能够成功注册我的服务工作者,但是在获取处理程序时,它无法正常工作。

我尝试的东西:

在获取处理程序上方和下方使用的调试器。我发现它从未被调用。我无法找到这种奇怪行为背后的原因。

self.addEventListener('install', function(event) {
    console.log('The service worker is being installed.');  
    event.waitUntil(precache());
});
self.addEventListener('fetch', function(event) {
    alert("Hi");  
});

"服务工作者注册将提供的脚本URL与示波器联系起来,后来用于导航匹配。"

您可能正在做的是 navigator.serviceWorker.register( '{SOME_RESOURCE_PATH}/service-worker.js')甚至设置scope: './'。问题在于,这将使您的获取仅在https://foo.bar/{SOME_RESOURCE_PATH}/上触发。这意味着您需要将SW设置在网站的根上,以删除所需的资源路径。您需要做的是更改配置,将SW放在站点的根部。

ex。您可以在mvc-config.xml

中做什么
<mvc:resources mapping="/**" location="classpath:/PATH_TO_SW/"/>

然后注册SW看起来像

navigator.serviceWorker.register( '/service-worker.js')

最新更新