我的网站www.jungledragon.com大量使用了图标字体“FontAwesome”。本周我将系统升级到 Windows 8.1,并安装了 IE11。我注意到 FontAwesome 字体无法完全加载,并且浏览器控制台显示以下错误:
CSS3117: @font-face failed cross-origin request. Resource access is restricted.
File: fontawesome-webfont.eot
CSS3117: @font-face failed cross-origin request. Resource access is restricted.
File: fontawesome-webfont.woff
CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable. File: fontawesome-webfont.ttf
我知道这些错误是什么意思,它们与跨源权限有关,因为在我的例子中实际字体文件托管在 Amazon S3 上。
然而,奇怪的是:我确实有一个 CORS 策略应用于有问题的存储桶,这一直有效。为了做更多的研究,我尝试将 IE11 放入不同的文档模式,即 IE10、IE9 和 IE8。字体在所有情况下都无法加载。这很奇怪,因为当我在 Windows 8 上时,它可以在 IE8、9 和 10 上正常工作。
看起来那些文档模式真的没用,因为我继续使用 browserstack 做一些真正的测试,使用真正的原生浏览器版本而不是文档模式。在 Windows 7 和 8 上,字体在 IE8、9、10 以及 IE11 预览中都可以正常加载。
我现在有点不知道问题出在哪里。问题是 Windows 8.1 的结果吗(对我来说似乎,但我无法在 browserstack 中测试它,它不可用)?还是仅在 IE11 的最终版本中存在问题?如果是这样,为什么在每个文档模式中都存在问题?
注意:如果您想帮助测试,在网站上很容易看到字体是否加载:全局导航栏将没有图标,以及网站的其他几个区域。