问题
I have a script at http://localhost/js/foo.js
which needs to spawn a Web Worker from the file http://localhost/js/fooWorker.js
. I assumed I could just do something like this:
var worker = new Worker('fooWorker.js')
However, this results in a 404 error, as the browser cannot find http://localhost/fooWorker.js
. I was under the impression that worker paths were resolved relative to the script spawning the worker, so shouldn't I just be able to specify the name of another .js file in the same directory without having to provide an absolute path? Am I doing something wrong?
回答1:
From http://www.w3.org/TR/workers/:
When the Worker(scriptURL) constructor is invoked, the user agent must run the following steps:
- Resolve the scriptURL argument relative to the entry script's base URL, when the method is invoked.
回答2:
Actually, it should be relative to the embedded document path
For example,
I have
pathDoc\docA.html
js\b.js
js\worker\c.js
then code should be
var worker = new Worker('..\js\worker\c.js')
来源:https://stackoverflow.com/questions/12417216/javascript-not-resolving-worker-path-relative-to-current-script