为什么Bootstrap尝试在Edge中加载LESS文件?

时间:2016-02-01 23:37:06

标签: css twitter-bootstrap less microsoft-edge

我有一个使用Twitter Bootstrap的网页。它适用于Chrome,Firefox和Safari。但是,当我尝试在Windows 10上的Edge中查看它时,我得到了一堆403错误,说它无法从Bootstrap CDN加载大量.less文件。如果浏览器无法对它们执行任何操作,为什么要求.less文件?我根本没有使用LESS,只是简单的CSS3,它渲染得很好。我该如何停止?

Deluge of unnecessary LESS file requests

2 个答案:

答案 0 :(得分:37)

好消息是这不会影响网站的常规用户。坏消息是Chrome在某种程度上也是如此,只是Chrome中的网络标签没有报告403错误。

在链接到的CSS文件中,文件底部有一行:

/*# sourceMappingURL=bootstrap.min.css.map */

这是源地图,并提供了用于生成浏览器中缩小的CSS的所有源文件的链接。

在引导程序实例中,CDN指向不存在的文件,例如http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/less/scaffolding.less

只有在启用了源地图并打开开发工具的情况下,才会下载源地图文件。 Edge默认源映射,据我所知,没有办法关闭它们(但请记住这只会在dev工具打开时发生,我已经使用Fiddler确认了这种行为),所以当你按f12然后它就是打算尝试获取源映射文件。 Chrome的工作方式略有不同,它会下载源地图,但在您导航到源文件之前不会尝试下载.less文件。

如果其中一个.less文件返回403 Forbidden响应,则会在网络选项卡中报告此情况。 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

答案 1 :(得分:1)

MaxCDN本身存在已知问题。 (还有CDNjs

记录的问题以供参考:

CDN分析:

对于bootstrap.min.css.map bootstrap file sourceMappingURL,任何.less扩展名文件(例如this file)都无法加载HTTP状态{{ 1}}(禁止)。

Chrome在开发者控制台中正在扼杀这个问题,但Edge并非如此。 访问.less文件时的问题可通过访问this链接重现。

此问题不仅适用于MaxCDN,还适用于CDNjs。 CDNj的链接是thisthis& this