我想知道 Worker
接受相对路径的构造函数。例如,文件结构如下:
root/
+---js/
| +--workers/
| | +--some-worker.js
| +--index.js
+---index.html
如果index.html
负载 index.js
和 index.js
做这样的事情:
var someWorker = new Worker("./workers/some-worker.js");
这能正常工作吗?好吧,不。奇怪的是它将 url 解析为 <domain>/workers/some-worker.js
.
这个问题有解决办法吗?我希望加载 <domain>/js/workers/some-worker.js
相反。
如何制作new Worker("workers/some-worker.js")
解析到相对目录(在本例中为 /js/workers/some-worker.js
,因为它是从 /js/
调用的)?
最佳答案
您不能为此使用相对 URL。另一件事是,它接受相对于域的相对 URL。所以,它是:
- 绝对网址
- 域的相对 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");
希望对您有所帮助! :)
关于javascript - Worker 构造函数是否接受相对 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31098864/