You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用CDNJS加载资源时出现map文件404错误的咨询

关于Safari中CDN资源map文件404错误的解答

先给你确认下:你对map文件的理解是完全正确的!它们是源映射文件,作用是把压缩后的代码(比如bootstrap.min.cssbootstrap.bundle.min.js这类经过压缩混淆的文件)映射回未压缩的原始源码,方便开发者在浏览器调试时能清晰看到未压缩的代码结构——对页面的正常运行没有任何影响,只是个调试辅助工具而已。

接下来聊聊这个404错误的问题:

  • 为什么会出现?
    浏览器在加载压缩后的资源时,默认会自动尝试请求对应的map文件(比如加载bootstrap.min.css就会自动找bootstrap.min.css.map),如果CDNJS没有提供该版本对应的map文件,或者文件路径配置有偏差,就会出现这个404报错。

  • 能不能修复?当然可以!而且方法很简单:

    1. 关闭浏览器的源映射自动请求(最推荐的方案)
      打开Safari的开发者工具,点击右上角的齿轮图标进入设置界面,取消勾选「Enable CSS Source Maps」和「Enable JavaScript Source Maps」选项。这样浏览器就不会再主动请求map文件,404错误自然就消失了。
    2. (可选)手动指定map文件路径(如果CDNJS有提供的话)
      你可以确认下对应版本的map文件是否在CDNJS上存在,如果有的话,在你的CSS/JS资源引用末尾添加源映射注释,比如给bootstrap.min.css加:
      /*# sourceMappingURL=https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.min.css.map */
      
      不过一般来说没必要这么折腾,关闭源映射功能更省心。
  • 这属于服务器端错误吗?
    严格来说不算核心的服务器端错误——CDNJS提供的核心功能资源(css/js文件)是正常加载可用的,只是缺少了调试用的map文件。而且这个问题完全可以通过客户端设置解决,不需要依赖CDN服务商修复。

内容的提问来源于stack exchange,提问作者MoPaMo

火山引擎 最新活动