Служебный работник получает событие handleR с пружиной MVC

1

Я пытаюсь сделать приложение 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");  
});
Теги:
spring-mvc
service-worker
progressive-web-apps

1 ответ

0

"регистрация сервисного работ связывает предоставленный URL-адрес сценария с областью действия, которая впоследствии используется для сопоставления навигации".

То, что вы, вероятно, делаете, это 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')
  • 0
    Никогда не знал, что это будет проблемой! Спасибо, я попробую это и сообщу, если это работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню