Chrome调试时Source Map映射JS文件显示404页面问题求助
源映射显示404页面的原因分析
问题场景
网站部署了压缩后的angular.min.js及对应的angular.min.js.map文件,压缩JS运行正常。Chrome开发者工具「Sources」标签下已生成标注为*angular.js (from source map)*的条目,说明压缩文件中的源映射注释//# sourceMappingURL=angular.min.js.map配置正确,但点击该条目时,内容面板显示网站404错误页面而非映射后的原始源码,且大量其他JS文件存在相同问题,已启用「Enable JavaScript source maps」选项。
可能的原因
- 源映射文件的
sources字段路径错误
源映射(.map)文件中的sources数组定义了原始源码的路径。如果这个路径是本地开发环境的相对路径(比如src/angular.js),而部署到服务器后该路径下并没有对应的原始源码文件,浏览器会尝试按照这个路径发起请求,最终返回404页面。 - 源映射未内嵌原始源码内容
部分源映射会将原始源码直接内嵌在sourcesContent字段中,这样浏览器无需额外请求文件即可生成映射后的源码。如果该字段缺失或生成错误,浏览器会自动去请求sources字段指定的路径,若服务器上无对应文件则返回404。 - 服务器路由/重写规则问题
服务器的路由配置可能将所有不存在的请求都导向404页面,当浏览器请求sources字段指定的原始源码路径时,服务器无法找到对应资源,直接返回404页面;或者服务器的路径重写规则错误拦截了这类请求。 - 压缩文件与源映射文件不匹配
如果压缩后的JS文件和对应的.map文件不是同一批次生成的,两者的内容不匹配,浏览器无法正确解析映射关系,可能会尝试请求错误的路径导致404。
内容的提问来源于stack exchange,提问作者user2526586
相关产品推荐
相关产品推荐

