sourcemappingurl: relative from html or js 的 base url 是哪个?

Which is the base url of sourcemappingurl: relative from html or js?

假设在html文件的子目录下有一个带有source-map的js文件。

那么myjs.js的sourceMappingURL注释是哪个?

//# sourceMappingURL=myjs.js.map

//# sourceMappingURL=js/myjs.js.map

我查找 specification

当源映射URL不是绝对的,那么它是相对于生成代码的“源源”。来源来源由下列情况之一确定:

  • 如果生成的源不与脚本元素相关联 具有“src”属性并且存在 //# sourceURL 注释 生成的代码,该注释应用于确定来源 起源。注意:以前,这是“//@sourceURL”,与“//@ sourceMappingURL”,两者都接受是合理的,但是 //# 是 首选。
  • 如果生成的代码与脚本元素相关联 并且脚本元素有一个“src”属性,“src”属性 脚本元素将是来源。
  • 如果生成代码 与脚本元素相关联,而脚本元素不 有一个“src”属性,那么来源将是页面的 起源.
  • 如果生成的代码被评估为带有 eval() 函数或通过 new Function(),则源原点将是 页面的来源。

因此,如果您在 index.html 中使用 <script src="js/myjs.js">,则使用 js/myjs.js.map