Worker 构造函数是否接受相对 URL?
Does the Worker constructor accept relative urls?
我想知道 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。另一件事是,它接受相对于域的 URLs。所以,它是:
- 绝对URLs
- 相对于 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");
希望对您有所帮助! :)
我想知道 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。另一件事是,它接受相对于域的 URLs。所以,它是:
- 绝对URLs
- 相对于 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");
希望对您有所帮助! :)