为什么 Bootstrap 尝试在 Edge 中加载 LESS 文件?
Why is Bootstrap trying to load LESS files in Edge?
我有一个使用 Twitter 的网页 Bootstrap。它在 Chrome、Firefox 和 Safari 中运行良好。但是,当我尝试在 Windows 10 上在 Edge 中查看它时,我收到一堆 403 错误,提示它无法从 Bootstrap CDN 加载大量 .less 文件。如果浏览器不能对它们执行任何操作,为什么要请求 .less 文件?我根本没有使用 LESS,只是简单的 CSS3,渲染得很好。我该如何停止?
好消息是这不会影响网站的普通用户。坏消息是,这在某种程度上也在 Chrome 中发生,只是 Chrome 中的网络选项卡没有报告 403 错误。
在您 link 的 CSS 文件中,文件底部有一行:
/*# sourceMappingURL=bootstrap.min.css.map */
这是源映射,并为用于生成浏览器中缩小的 CSS 的所有源文件提供 links。
在 bootstrap 实例中,CDN 指向不存在的文件,例如 http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/less/scaffolding.less
仅当您启用了源映射并打开了您的开发工具时,才会下载源映射文件。 Edge 默认打开源映射,据我所知,没有办法关闭它们(但请记住,这只会在开发工具打开时发生,我已经使用 Fiddler 确认了这种行为),所以当你按 f12 时,它是将尝试获取源映射文件。 Chrome 工作方式略有不同,它将下载源映射,但在您导航到源文件之前不会尝试下载 .less 文件。
如果 .less 文件之一返回 403 禁止响应,Edge 在网络选项卡中报告此情况。 Chrome 没有。
如果您使用 Fiddler 等 http 调试器,您会看到 Chrome 确实请求了文件并且也得到了 403 响应,但是,它不会在网络选项卡上报告它。当使用 Fiddler 解决 https 问题时,我将 CSS 文件更改为指向非 https URL。例如:http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
此问题的解决方法是修复源映射中的 403 文件。我在 bootstrap maxcdn GitHub repro 上提出了一个问题:https://github.com/MaxCDN/bootstrap-cdn/issues/629
MaxCDN itself. (and CDNjs 也存在一个已知问题)
供参考的记录问题:
https://github.com/MaxCDN/bootstrap-cdn/issues/671 - 此问题已作为重复问题关闭
https://github.com/twbs/bootstrap/issues/19063 - Twitter 未解决问题 bootstrap
CDN分析:
对于 sourceMappingURL
即 bootstrap.min.css.map
for bootstrap file, any of the .less
extension files (e.g. this file) 加载失败,HTTP 状态为 403
(禁止)。
Chrome 在开发人员控制台中抑制了这个问题,但 Edge 没有。
访问 .less 文件时的问题可以通过访问 this link.
重现
这个问题不仅存在于 MaxCDN, but also with CDNjs. The links for CDNjs are this,this & this
我有一个使用 Twitter 的网页 Bootstrap。它在 Chrome、Firefox 和 Safari 中运行良好。但是,当我尝试在 Windows 10 上在 Edge 中查看它时,我收到一堆 403 错误,提示它无法从 Bootstrap CDN 加载大量 .less 文件。如果浏览器不能对它们执行任何操作,为什么要请求 .less 文件?我根本没有使用 LESS,只是简单的 CSS3,渲染得很好。我该如何停止?
好消息是这不会影响网站的普通用户。坏消息是,这在某种程度上也在 Chrome 中发生,只是 Chrome 中的网络选项卡没有报告 403 错误。
在您 link 的 CSS 文件中,文件底部有一行:
/*# sourceMappingURL=bootstrap.min.css.map */
这是源映射,并为用于生成浏览器中缩小的 CSS 的所有源文件提供 links。
在 bootstrap 实例中,CDN 指向不存在的文件,例如 http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/less/scaffolding.less
仅当您启用了源映射并打开了您的开发工具时,才会下载源映射文件。 Edge 默认打开源映射,据我所知,没有办法关闭它们(但请记住,这只会在开发工具打开时发生,我已经使用 Fiddler 确认了这种行为),所以当你按 f12 时,它是将尝试获取源映射文件。 Chrome 工作方式略有不同,它将下载源映射,但在您导航到源文件之前不会尝试下载 .less 文件。
如果 .less 文件之一返回 403 禁止响应,Edge 在网络选项卡中报告此情况。 Chrome 没有。
如果您使用 Fiddler 等 http 调试器,您会看到 Chrome 确实请求了文件并且也得到了 403 响应,但是,它不会在网络选项卡上报告它。当使用 Fiddler 解决 https 问题时,我将 CSS 文件更改为指向非 https URL。例如:http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
此问题的解决方法是修复源映射中的 403 文件。我在 bootstrap maxcdn GitHub repro 上提出了一个问题:https://github.com/MaxCDN/bootstrap-cdn/issues/629
MaxCDN itself. (and CDNjs 也存在一个已知问题)
供参考的记录问题:
https://github.com/MaxCDN/bootstrap-cdn/issues/671 - 此问题已作为重复问题关闭
https://github.com/twbs/bootstrap/issues/19063 - Twitter 未解决问题 bootstrap
CDN分析:
对于 sourceMappingURL
即 bootstrap.min.css.map
for bootstrap file, any of the .less
extension files (e.g. this file) 加载失败,HTTP 状态为 403
(禁止)。
Chrome 在开发人员控制台中抑制了这个问题,但 Edge 没有。 访问 .less 文件时的问题可以通过访问 this link.
重现这个问题不仅存在于 MaxCDN, but also with CDNjs. The links for CDNjs are this,this & this