Если вы посмотрите на это изображение, вы увидите, что запрошенный файл JPEG возвращается ServiceWorker как text/html
.
IЯ имею представление, почему это может происходить, но я не знаю, как с этим справиться.
Когда очищается кеш и не установлен ServiceWorker, все в порядке, и файл JPEG возвращается правильно (дажес правильными заголовками ответов, такими как Access-Control-Allow-Origin: *
) Однако, когда ServiceWorker установлен во второй перезагрузке страницы, ответ каким-то образом изменяется, и тип содержимого устанавливается на text/html
плюс он даже теряет все заголовки ответов для CORS.
Я думаю, это из-за одного предварительно кэшированного файла javascript, в котором изображение выбирается с помощью JavaScript, но каким-то образом ответ теряет все, что мне нужно, поэтому он может работать, и я получаю ошибку CORS.
Я получаюкак это:
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request)
.then((response) => response || fetch(event.request))
.catch(() => caches.match('offline')),
);
});
И чтобы добавить последнее, если вы посмотрите слева от изображения, вы увидите, что то же изображение выбирается также для всегопростой тег <img>
и все работает отлично, и ServiceWorker даже возвращает его с правильным ответом.
Что мне делать?
Субдомен cdn отправляется на S3-сервер.