Я пытаюсь сделать приложение Spring MVC с автономными функциями. Все работает отлично, кроме обработчика выборки.
Я могу успешно зарегистрировать моего сервисного работника, но когда дело доходит до обработчика выборки, он не работает.
Используемый отладчик выше и ниже обработчика выборки. Я узнал, что он никогда не вызывается. Я не могу узнать причину этого странного поведения.
self.addEventListener('install', function(event) {
console.log('The service worker is being installed.');
event.waitUntil(precache());
});
self.addEventListener('fetch', function(event) {
alert("Hi");
});
То, что вы, вероятно, делаете, это 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')