Chrome为何如此展示sourceMappingURL相对路径?正确路径该如何设置?
解决Chrome中sourcemap路径重复问题的正确设置
你遇到的这个情况挺常见的——明明按规范用了相对路径,Chrome却错误解析出重复子目录的无效URL。针对你的场景(压缩后的dep.js和dep.js.map放在同一目录/scripts/dep/下),给你两个靠谱的解决方案:
方案1:使用绝对路径(最稳妥)
直接指定sourcemap的绝对路径,彻底避免相对路径解析的歧义:
//# sourceMappingURL=/scripts/dep/dep.js.map
这种方式让Chrome直接定位到正确的文件位置,不会出现路径叠加的问题。
方案2:带当前目录前缀的相对路径
有时候Chrome对无前缀的相对路径解析会出现偏差,加上./明确表示相对于当前脚本所在的目录,也能修复这个问题:
//# sourceMappingURL=./dep.js.map
之所以原来的//# sourceMappingURL=dep.js.map会出问题,大概率是Chrome在特定场景下错误地把相对路径基于页面URL而非脚本文件自身的URL来解析,导致路径重复叠加。上面两种方案都能避开这个解析bug,同时符合sourcemap的规范要求。
内容的提问来源于stack exchange,提问作者Jason Young
相关产品推荐
相关产品推荐

