Service Worker не загружается на действующий (https) сервер - PullRequest
0 голосов
/ 28 апреля 2018

Когда на localhost 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, указанным здесь

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

Есть идеи?

1 Ответ

0 голосов
/ 28 апреля 2018

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

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

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

...