Service Worker не загружается на действующий (https) сервер

1

Когда на локальном service-worker.js загружается и работает нормально, но на реальном сервере он не загружается, и я получаю эту ошибку в консоли:

The script has an unsupported MIME type ('text/x-js').
Failed to load resource: net::ERR_INSECURE_RESPONSE
Uncaught (in promise) DOMException: Failed to register a ServiceWorker: The script has an unsupported MIME type ('text/x-js').

Существует перенаправление с http на https с .htaccess который выглядит так:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  • Я знаю, что это было задано раньше, но не полностью ответили.
  • Я знаю, что это может иметь какое-то отношение к файлу.htaccess, как упомянуто здесь.
  • Он также может иметь какое-то отношение к инфраструктуре vue.js, указанному здесь

Но, в конце концов, я не могу обдумать это.

Есть идеи?

Теги:
vue.js
.htaccess
service-worker

1 ответ

0
Лучший ответ

Ваш живой сервер должен вернуть HTTP- content-type заголовка ответа HTTP со значением "application/javascript". Вместо этого он возвращает "text/x-js". В идеале UTF8 также должен поддерживаться. Попробуйте добавить эти строки в .htaccess чтобы исправить тип MIME для всех *.js URI:

AddType application/javascript .js 
AddCharset utf-8 .js 

Проверьте заголовки ответов HTTP в Chrome DevTools, чтобы убедиться, что сервер отвечает заголовком content-type: text/javascript; charset=utf-8 content-type: text/javascript; charset=utf-8 когда вы запрашиваете URL-адрес service-worker.js

Ещё вопросы

Сообщество Overcoder
Наверх
Меню