实例化belial.jsI中的Web Worker时找不到404

时间:2018-12-23 23:57:25

标签: web backbone.js marionette web-worker

我正在尝试在ribs.js项目中实施Web Worker,但收到错误消息 src / js / worker.js 404(未找到)

我创建了一个worker.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 :(得分:0)

似乎您尝试从不安全的位置加载服务工作程序脚本。我建议您从http://localhost开始为您的开发页面服务,以与服务工作者一起迈出第一步。您可以在"Is ServiceWorker Ready?"网站上找到一个不错的“指南”。

请确保您:

如果没有有效的证书,您将无法从httphttps协议加载服务工作者脚本。从http://localhost为您服务的网页是一个例外; localhost被认为是安全的,可以使开发更容易。另请参见the full list of "secure" origins as implemented in 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.

如果使用自签名证书,则可以install the SSL certificate of your "fake" CA as a trusted root certificate authority in your web browser或OS。浏览器不会再询问您访问页面的例外情况,并且服务人员将很好地加载。

如果您使用的是Chrome,则可以使用参数--unsafely-treat-insecure-origin-as-secure--allow-insecure-localhost强制浏览器进入load the service worker script from otherwise illegal origins。但是只能在您的开发环境中执行此操作。不在生产网站上。