我的网站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的最终版本中可能是一个问题?如果是这样,为什么在每种文档模式中都会出现问题?
注意:如果您想帮助测试,在网站上很容易看出字体是否加载:全局导航栏将没有图标,以及网站的其他几个区域。
答案 0 :(得分:2)
我们通过fast.fonts.com使用Avenir字体看到了同样的错误。它们在IE10,9,8中工作得非常好......但不是IE11。我们的问题在Windows 7上使用IE11展出。
在fast.fonts.com上有什么好奇的,你可以选择JS文件或CSS文件调用。 JS调用失败,但CSS没有。不幸的是,CSS调用在Firefox上不起作用。
示例错误:CSS3114:@ font-face失败OpenType嵌入权限检查。权限必须是可安装的。 File:6662a841-5b52-4af6-a868-6b43e3d7b263.ttf
答案 1 :(得分:1)
我还不能评论,所以我必须将此作为答案发布..
这是Google承认的官方问题(242): https://code.google.com/p/googlefontdirectory/issues/detail?id=242
您可能想跟踪它; - )
如果我理解正确,那么在Win 8.1上的IE11中都不能使用任何webfonts。对于我们很多网络开发者来说,这将是非常糟糕的: - (
答案 2 :(得分:0)
奇。今天我收到了BrowserStack发布的声明,他们现在支持Windows 8.1上的IE11,所以我抓住这个机会做了一个干净的测试。没有发生字体加载问题,它加载得很好。
然后我使用IE11对我的本地Windows 8.1进行了另一次测试,现在也在那里解决了。我完全没有改变它,它似乎已经解决了。我唯一能想到的是自动更新被推送到Windows 8.1 / IE11?无论哪种方式,现在都解决了。