У меня проблема с ServiceWorker. Он работает нормально для всех запросов, кроме перенаправления 301. Я использую кириллические URL-адреса, но он работает без ServiceWorker.
Когда я отправляю запрос без ServiceWorker, я получаю правильный ответ с правильным URL для перенаправления. Когда я использую ServiceWorker, он отвечает неверным URL. Я отвечаю « / ÐнР° Ñение-Ñл овР° - ¨¨Ð¨ÑÑ-в-ÑÐ »Ð¾Ð²Ð ° Ñе-Ð £ ÑÐ ° ковР° », но это ISO-8859-1, ноЯ не знаю, где это появляется, в ответ я вижу UTF-8 и sw.js, сохраненные в UTF-8). Что происходит? Пожалуйста, помогите и сообщите, как я могу это исправить? Что мне нужно прочитать?
Я использую PHP и NGINX.
Заранее всем благодарен за помощь!
Без ServiceWorker:
Запрос:
Request URL: https://glosum.ru/%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0--%D1%88%D0%BE%D1%81%D1%82-%D0%B2-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B5-%D0%A3%D1%88%D0%B0%D0%BA%D0%BE%D0%B2%D0%B0
Request Method: GET
Status Code: 301
Remote Address: 194.58.104.159:443
Referrer Policy: no-referrer-when-downgrade
Ответ:
content-type: text/html; charset=UTF-8
date: Wed, 30 Oct 2019 17:41:19 GMT
location: /Значение-слова--Шост-в-словаре-Ушакова
server: nginx
status: 301
С ServiceWorker:
Запрос:
Request URL: https://glosum.ru/%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0--%D1%88%D0%BE%D1%81%D1%82-%D0%B2-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B5-%D0%A3%D1%88%D0%B0%D0%BA%D0%BE%D0%B2%D0%B0
Request Method: GET
Status Code: 301
Remote Address: 194.58.104.159:443
Referrer Policy: no-referrer-when-downgrade
Ответ:
content-type: text/html; charset=UTF-8
date: Wed, 30 Oct 2019 17:41:27 GMT
location: /ÐнаÑение-Ñлова--ШоÑÑ-в-ÑловаÑе-УÑакова
server: nginx
status: 301
Исходный код моего сервисного работника:
self.addEventListener('install', function (event) {
event.waitUntil(
caches.open('v5')
.then(function (cache) {
return cache.addAll([
'/',
'/js/share.js',
// img
'/img/logo.png',
'/images/search.png',
'/img/books.webp',
'/img/books.jpg',
'/img/header.png',
'/img/nav.png',
'/img/footer.png',
'/img/main-shadow.png',
'/img/article-1books.jpg',
// css
'/css/style.css'
]);
})
);
});
self.addEventListener('fetch', function (event) {
event.respondWith(
caches.match(event.request)
.then(function (response) {
if (response) {
return response;
}
return fetch(event.request);
})
);
});