我正在尝试使用离线功能制作一个弹簧MVC应用程序。除了获取处理程序之外,一切正常。
我能够成功注册我的服务工作者,但是当涉及到获取处理程序时,它无法正常工作。
在获取处理程序的上方和下方使用了调试器。我发现它永远不会被调用。我无法找出这种奇怪行为背后的原因。
self.addEventListener('install', function(event) {
console.log('The service worker is being installed.');
event.waitUntil(precache());
});
self.addEventListener('fetch', function(event) {
alert("Hi");
});
答案 0 :(得分:0)
你可能正在做的事情
navigator.serviceWorker.register( '{SOME_RESOURCE_PATH}/service-worker.js')
甚至设置scope: './'
。这样做的问题在于它只会在https://foo.bar/{SOME_RESOURCE_PATH}/
上触发您的提取。这意味着您需要将sw设置到站点的根目录以删除所需的资源路径。您需要做的是更改配置以将sw放在网站的根目录上。
离。您可以在mvc-config.xml
<mvc:resources mapping="/**" location="classpath:/PATH_TO_SW/"/>
然后注册sw看起来像
navigator.serviceWorker.register( '/service-worker.js')