我有一个使用Twitter Bootstrap的网页。它适用于Chrome,Firefox和Safari。但是,当我尝试在Windows 10上的Edge中查看它时,我得到了一堆403错误,说它无法从Bootstrap CDN加载大量.less文件。如果浏览器无法对它们执行任何操作,为什么要求.less文件?我根本没有使用LESS,只是简单的CSS3,它渲染得很好。我该如何停止?
答案 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)
记录的问题以供参考:
https://github.com/MaxCDN/bootstrap-cdn/issues/671 - 此问题已关闭,重复
https://github.com/twbs/bootstrap/issues/19063 - Twitter bootstrap的未解决问题
CDN分析:
对于bootstrap.min.css.map
bootstrap file sourceMappingURL
,任何.less
扩展名文件(例如this file)都无法加载HTTP状态{{ 1}}(禁止)。
Chrome在开发者控制台中正在扼杀这个问题,但Edge并非如此。 访问.less文件时的问题可通过访问this链接重现。