Почему работник службы не работает в Chrome? - PullRequest
1 голос
/ 27 марта 2020

Я новичок в веб-разработке, поэтому извините, если мне не ясен мой вопрос.

Я пытаюсь создать PWA и в настоящее время проверяю, работает ли мой манифест и работник службы. В моем проекте у меня есть файл index. html, который вызывает файл app. js, в котором я пытаюсь зарегистрировать работника службы с именем serviceworker. js. Вот фрагмент кода, в котором я пытаюсь зарегистрировать своего сервисного работника:

if('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/serviceworker.js')
  .then(function() {
    console.log('service worker registered');
  });
}
else {
  console.log('cannot register');
}

Когда я перезагружаю свою страницу, на моей консоли отображается сообщение «не удается зарегистрироваться». Чтобы устранить эту проблему, я написал строку в предложении if, чтобы увидеть, была ли это проблема с самим условием. Оказывается, даже удалив предложения if и else и просто запустив сегмент кода navigator.serviceWorker.register('/serviceworker.js') .then(function() { console.log('service worker registered'); });, консоль выдает сообщение об ошибке «Не удается найти регистр свойств». Насколько я понимаю, сервисные работники работают не во всех браузерах, но я проверил, работает ли он в Chrome (что я и тестирую), и там написано, что сервисные работники поддерживаются. Может кто-нибудь сказать, пожалуйста, почему это не работает? В настоящее время я использую версию 80.0.3987.149 (официальная сборка) (64-разрядная версия) Chrome. Алси, я не знаю, важно ли это, но я использую Node.js. Заранее спасибо.

1 Ответ

0 голосов
/ 10 апреля 2020

Невозможно комментировать из-за низкой репутации, но отметьте this & this out.

Вкратце: работникам сферы обслуживания требуется, чтобы сайт, использующий их, обслуживался по HTTPS. по соображениям безопасности, но есть исключения для localhost.

Проверьте этот , как обслуживать файл html на localhost.

...