Я углубляюсь в новый PUSH API и могу зарегистрировать работника сервиса, как и ожидалось.Для этого я следую рецептам Mozilla .
Вообще говоря, вы создадите два файла javascript;один для сервисного работника, которого вы хотите зарегистрировать, и один для фактической регистрации - давайте вызовем этот index.js-, который в моем случае включает функцию registerWorker ().Я включил html-файл (скажем, push.html), который вызывает эту функцию при загрузке, чтобы браузер, который вызывает этот html-файл, регистрировал работника сервиса.Пока что все это прекрасно работает в среде разработки.
Проблемы начинаются, когда я хочу перенести это на свой сервер.Если я портирую сервис-работника и index.js на мой сервер (например, сервер Apache 2), я неожиданно получаю сообщение о том, что сервисный работник отсутствует в навигаторе.Я пробовал разные стратегии, но пока безуспешно.
Поэтому мой вопрос таков:Каков наилучший способ разместить необходимые файлы javascript на сервере для достижения вышеуказанного?
Редактировать:
Я добавлю ниже файл push.html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Simple Push Notification - ServiceWorker Cookbook</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body onload="registerServiceWorker(12)">
<script src="./js/index.js"></script>
</body>
</html>
Насколько я вижу, единственное отличие состоит в том, что я вызываю этот файл с локального хоста в среде разработчика и http://{myserver}:{myport}// с сервера.Я бы не ожидал какого-либо другого поведения, если, возможно, это не связано с требованиями SSL или фильтрами CORS ...
Редактировать 2:
ОК. Я нашел наиболее вероятную причину, основанную наэтот пост: Не могу найти serviceWorker в навигаторе
При размещении кода на сервере требуется поддержка https!