Надеюсь, вопрос не задавался слишком много раз.Итак, я хотел создать свой собственный файл рабочего сервиса в моем проекте React.Я назвал его «sw.js» и поместил в папку src /, в ту же папку, где находится файл «index.js», содержащий все файлы jsx.Архитектура проекта React:
- node_modules -public -src ----- index.js ----- sw.js -package -package-lock -README
Как только страница загрузится, работник сервиса должен зарегистрироваться в браузере.Однако в Firefox у меня возникает следующая ошибка: «Не удалось зарегистрировать / обновить ServiceWorker для области» http://localhost:3000/’: Неверный тип содержимого «text / html», полученный для сценария «http://localhost:3000/sw.js’. Должно бытьJavaScript MIME-тип. "
" Ошибка работника службы DOMException: "операция небезопасна." "
Я знаю, что ошибка не связана с кодом регистрации самого работника службы,потому что он работал в стандартном проекте без реакции
вот код, регистрирующий работника службы в index.js:
render () {
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
console.log('Service Worker and Push is supported');
navigator.serviceWorker.register('/sw.js')
.then(swReg => {
console.log('Service Worker is registered', swReg);
this.setState({ swReg : swReg } )
// TODO 3.3a - call the initializeUI() function
})
.catch(err => {
console.error('Service Worker Error', err);
});
});
}
Как вывидите, я поместил это в метод рендеринга моего основного компонента React