404 Не найден при создании экземпляра веб-работника в backbone.jsI - PullRequest
0 голосов
/ 24 декабря 2018

Я пытался внедрить веб-работника в проект backbone.js и получил сообщение об ошибке src / js / worker.js 404 (не найдено)

Я создал работника.js файл и у меня есть код ниже в файле

this.addEventListner('message', function(e){
   console.log('Message received: ', e.data);
});

И приведенный ниже код отправляет сообщение работнику

let worker = new Worker('src/js/worker.js')
worker.postMessage('hello');

Может кто-нибудь, пожалуйста, дайте мне знать, что я делаюнеправильно?Спасибо!

1 Ответ

0 голосов
/ 26 декабря 2018

Оказывается, вы пытаетесь загрузить служебный скрипт из небезопасного места.Я рекомендую вам предоставить вам страницы разработки с http://localhost, чтобы сделать первые шаги с работниками сферы обслуживания.На сайте "Готов ли ServiceWorker Ready?" вы найдете отличный "путеводитель".

Убедитесь, что вы:

Вы выигралиневозможно загрузить сценарий работника службы из протоколов http или https без действительного сертификата.Обслуживание страницы с http://localhost является исключением;localhost считается безопасным для облегчения разработки.См. Также полный список «безопасных» источников, реализованный в Chrome .

Вы получите ту же ошибку, если файл отсутствует или браузер не может загрузить его из протокола,который вы использовали:

A bad HTTP response code (404) was received when fetching the script.
Failed to load resource: net::ERR_INVALID_RESPONSE
ServiceWorker registration failed:  TypeError: Failed to register a ServiceWorker:
  A bad HTTP response code (404) was received when fetching the script.

Если сертификат SSL вашего веб-сайта недействителен, включая самозаверяющие сертификаты, вы получите следующую ошибку:

An SSL certificate error occurred when fetching the script.
Failed to load resource: net::ERR_CERT_DATE_INVALID
ServiceWorker registration failed:  DOMException: Failed to register a ServiceWorker:
  An SSL certificate error occurred when fetching the script.

Если вы используетеСамоподписанный сертификат, вы можете установить сертификат SSL вашего «поддельного» ЦС в качестве доверенного корневого центра сертификации в веб-браузере или ОС.Браузер больше не будет запрашивать у вас исключения при доступе к вашей странице, и работник сервиса будет хорошо загружаться.

Если вы используете Chrome, вы можете использовать параметры --unsafely-treat-insecure-origin-as-secure и --allow-insecure-localhost, чтобы заставить браузер загрузить скрипт сервисного работника из-за нелегального происхождения .Но делайте это только в своей среде разработки.Не на производственном веб-сайте.

...