Настройка сервера Apache для разрешения Service Workers

Пробуя Service Workers в своем веб-проекте, вы могли столкнуться с этим сообщением об ошибке:

Путь указанного диапазона (‘/’) не соответствует максимально допустимому диапазону (‘/assets/js/’). Отрегулируйте область видимости, переместите скрипт Service Worker или используйте HTTP-заголовок Service-Worker-Allowed, чтобы разрешить область видимости.

Это происходит, когда вы пытаетесь разместить свой Service Worker (назовем его sw.js) в какой-либо папке, отличной от корневой папки вашего проекта. Хотя в принципе нормально поместить этот файл в корневую папку, это может противоречить шаблону, который вы задумали для своего проекта, и вы предпочли бы иметь sw.js в папке типа /assets/js/.

Что ж, в сообщении об ошибке уже есть все подсказки, необходимые для достижения этой цели.

Чтобы изменить HTTP-заголовок, вам сначала нужно загрузить модуль headers в вашем файле httpd.conf, добавив/отменив эту строку:

Затем, если вы используете HTTPS, перейдите в файл httpd-ssl.conf и добавьте следующие строки:

<IfModule mod_headers.c>
<Files "sw.js">
Header set Service Worker-Allowed "/"
</Files>
</IfModule>
Войти в полноэкранный режим Выйти из полноэкранного режима

Вот и все.
Теперь вы можете разместить Service Worker в любом удобном для вас месте вашего проекта.

Оцените статью
devanswers.ru
Добавить комментарий