我有以下模块:
define('jsViz',['require','jquery'],function (require) {
var scripts = document.getElementsByTagName("script"),
src = scripts[scripts.length-1].src,
dotWorker = new Worker("/JSViz/main.js?v=2");
});
scripts[scripts.length-1].src
返回domain/dist/js/index.js
,这是当前正在执行的脚本的URL。 Worker构造函数接受当前正在执行的脚本的相对路径,因此当我指定/JSViz/main.js
时,我假设脚本将从domain/dist/js/JSViz/main.js
加载,但浏览器会尝试从domain/JSViz/main.js
加载脚本。为什么这样?
PS。模块定义来自r.js优化输出,这是模块命名的原因。
答案 0 :(得分:1)
根据http://www.w3.org/TR/workers/
调用Worker(scriptURL)构造函数时,用户代理必须 执行以下步骤:
解析相对于条目脚本基础的scriptURL参数 调用方法时的URL。