我想知道root/
+---js/
| +--workers/
| | +--some-worker.js
| +--index.js
+---index.html
构造函数是否接受相对路径。例如,拥有如下文件结构:
index.html
如果index.js
加载index.js
而var someWorker = new Worker("./workers/some-worker.js");
执行如下操作:
<domain>/workers/some-worker.js
这可行吗?好吧,不。奇怪的是它将网址解析为<domain>/js/workers/some-worker.js
。
这个问题有解决方案吗?我希望改为加载new Worker("workers/some-worker.js")
。
如何让/js/workers/some-worker.js
解析到相关目录(在此示例/js/
中,因为它是从{{1}}调用的)?
答案 0 :(得分:2)
您无法使用相对网址。另一件事是,它接受相对于域的相对URL。所以,它是:
除此之外别无其他。您可以参考MDN Worker()
了解更多信息。
此外,您还可以通过获取当前位置来设置URL。所以你这样做了:
var someWorker = new Worker(location.href + "/workers/some-worker.js");
或者确切地说,你可以这样做:
currentPath = location.href.split("#");
if (currentPath.length > 1)
currentPath = currentPath[0];
currentPath = location.href.split("?");
if (currentPath.length > 1)
currentPath = currentPath[0];
var someWorker = new Worker(currentPath + "/workers/some-worker.js");
希望这有帮助! :)