PWA - Service Worker не может быть зарегистрирован при использовании с Xampp и виртуальным хостом - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь создать проект PWA (Progressive Web App), в котором обработка на стороне сервера строится с помощью PHP.Вот почему мне нужно работать с Xampp, чтобы я мог протестировать свой проект перед развертыванием на моем сервере.

Но я столкнулся с интересной проблемой, на которую не смог найти ответ.

Есть две идентичные версии одного и того же проекта.Один загружается на онлайн-сервер, а другой находится в папке Xampp.

И я получаю доступ к этим папкам через три разных сервера.

  1. Google Chrome Web Server: файлы проекта находятся в папке Xampp (C: \ xampp \ htdocs) и я могу получить к ним доступ через http://127.0.0.1:8887/.
  2. Мой облачный сервер онлайн: Apache / Centos 6.1
  3. Сервер Xampp: расположен по адресу (C: \ xampp \ htdocs) .Я использую виртуальный хост, и я могу получить доступ через gulmobil.bar (это виртуальный домен, указанный на 127.0.0.1 / порт 80)

С точки зрения открытия страницы, нет проблем,Все три сервера выполняют свою работу.Но когда я проверяю страницы с помощью Chrome Dev Tools, хотя первые два сервера (Chrome Web Server и Online Server) работают нормально, тот, который работает под Xampp, не показывает «Service Workers» и «Cache Storage».

  if ('serviceWorker' in navigator) {
    navigator.serviceWorker
             .register('./service-worker.js')
             .then(function() { console.log('Service Worker Registered'); });
  } else {
    console.log("service worker not registered");
  }

Кажется, навигатор не поддерживает работника сервиса.Поскольку консоль регистрирует «работник службы не зарегистрирован»

Проблема может быть связана с настройками сервера, но я не знаю, какие настройки могут вызвать проблему.Заранее спасибо.

РЕДАКТИРОВАТЬ : Я нашел подходящий ответ, который кажется похожим на мою проблему.Он говорит: «Ну, я использовал vhost, вот почему я получил ошибку с service-worker.js До того, как мой URL был: pwapp.dev/work Теперь мой URL: localhost/pwapp/work/ :/ работает нормально»

Вот ссылка .

1 Ответ

0 голосов
/ 01 октября 2018

Я наконец понял, что это проблема SSL, связанная с использованием Vhost.Благодаря @Jeff Posnick, я понял, что для запуска Service Worker вам нужно получить доступ к своей странице и скрипту работника сервиса через http://localhost[:port] или через http://127.x.y.z[:port].

Если кому-то, имеющему такую ​​же проблему, понравитсячтобы узнать больше, посетите этот SO Вопрос

Но все же, если вы хотите использовать Vhost, выполните эти шаги , чтобы установить SSL-сертификат для Xampp.

...