Я использую create-реагировать-приложение с экспресс-сервером.
create-react-app
имеет предварительно настроенный ServiceWorker, который кэширует локальные ресурсы (https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#making-a-progressive-web-app).
Проблема, с которой я столкнулся при попытке опубликовать на своем сервере, заключается в том, что файл service-worker.js
был доступен, но я получал ошибки в консоли браузера, когда он пытался его зарегистрировать.
В Firefox я получил эту ошибку:
Ошибка при регистрации сервисного работника:
TypeError: ServiceWorker script at https://my-domain.com/service-worker.js for scope https://my-domain.com/ encountered an error during installation.
В Chrome я получаю более описательную ошибку:
Ошибка при регистрации работника службы: DOMException: не удалось зарегистрировать ServiceWorker: сценарий имеет неподдерживаемый тип MIME ('text/html').
Конечно, если я загляну на вкладку "Сеть" моих инструментов разработчика и найду файл service-worker.js
, то увижу, что в заголовках HTTP указан неправильный тип MIME.
Я не мог понять, однако, почему он имеет неправильный тип MIME?