После создания рабочей сборки приложения React и следуя инструкциям по его развертыванию в Google App Engine у меня возникли проблемы с регистрацией работника сервиса во всех браузерах.
Я пробовал разные конфигурациив app.yaml
с последним из них:
# [START runtime]
runtime: nodejs8
# [END runtime]
# [START handlers]
handlers:
- url: /
static_files: build/index.html
upload: build/index.html
- url: /
static_dir: build
- url: /service-worker.js
static_files: build/service-worker.js
upload: build/service-worker.js
secure: always
# [END handlers]
Ошибка регистрируется в Firefox как
Error during service worker registration: DOMException: "The operation is insecure." serviceWorker.js:97:6
Failed to register/update a ServiceWorker for scope ‘https://xxx.appspot.com/’: Bad Content-Type of ‘text/plain’ received for script ‘https://xxx.appspot.com/service-worker.js’. Must be a JavaScript MIME type.
.. и Chrome
The script has an unsupported MIME type ('text/plain').
Failed to load resource: net::ERR_INSECURE_RESPONSE
serviceWorker.js:97 Error during service worker registration: DOMException
(anonymous) @ serviceWorker.js:97
Promise.catch (async)
tn @ serviceWorker.js:96
(anonymous) @ serviceWorker.js:51
load (async)
(anonymous) @ serviceWorker.js:34
429 @ index.js:25
p @ (index):1
276 @ stylesheet.js:47
p @ (index):1
i @ (index):1
e @ (index):1
(anonymous) @ main.609507e8.chunk.js:1
Я не сделалне изменяйте регистрацию / конфигурацию работника сервиса по умолчанию, так как в этом не было необходимости.Это регистрируется в index.js
.Нет проблем с регистрацией, когда производственная сборка обслуживается локально.
ReactDOM.render(app, document.getElementById("root"));
serviceWorker.register();