IE 11:我自己的代码中的错误CSS3111,并且google.com/fonts不呈现任何字体

Nat*_*nSr 19 css fonts internet-explorer

我正在开发一个使用Google字体的网站,Open Sans如下所示:

<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700italic,800italic,800,700' rel='stylesheet' type='text/css'>
Run Code Online (Sandbox Code Playgroud)

通常情况下,我在使用我的网站时使用Chrome,但今天我决定在Windows 10上看到它在IE 11(11.0.10240.16431)中的外观.不幸的是,Open Sans没有正确加载和渲染.我在Developer Tools控制台中看到了很多这些错误:

CSS3111: @font-face encountered unknown error.
PRmiXeptR36kaC0GEAetxjqR_3kx9_hJXbbyU8S6IN0.woff
Run Code Online (Sandbox Code Playgroud)

认为这很奇怪 - 我以前开发过一个网站,可以在IE 10中轻松加载Google字体 - 我转向https://www.google.com/fonts.更多CSS3111错误,serif而是显示每个自定义字体:

IE 11中破坏了Google字体

IE 11中破坏了Google字体

对于IE 11,谷歌字体是否已被破坏?字体在Edge,Chrome,Firefox等中正确加载.我对如何使这些字体在IE中工作感到茫然.

更新1

在IE 11中将模拟文档模式设置为8会导致字体正确呈现.然而,IE 9+仍然表现出同样的问题.这可能是谷歌某种不正确的用户代理字符串处理吗?

正确渲染

更新2

我去了FontSquirrel并下载了所有格式的Open Sans.我还导入了ZIP中提供的CSS.不幸的是,IE和现在的Firefox继续报告该字体无法使用.Firefox说downloadable font: not usable by platform.

更新3

我已经确认所有安全区域的IE的字体下载设置都设置为Enabled.

Fra*_*bie 24

对我来说,这个问题是由名为Untrusted Font Blocking的Windows 10功能引起的.我的办公室网络已在我们的组策略设置中打开.

使用此功能,您可以打开一个全局设置,阻止用户加载由图形设备接口(GDI)处理的不受信任的字体.不受信任的字体是安装在%windir%/ Fonts目录之外的任何字体.https://support.microsoft.com/en-us/kb/3053676

要使用组策略禁用不受信任的字体阻止:

  1. 打开组策略管理编辑器
  2. 在"本地计算机策略"下,依次展开"计算机配置","管理模板","系统",然后单击"缓解选项"
  3. 在"不受信任的字体阻止"设置中,选择"不阻止不受信任的字体"

要使用注册表编辑器禁用不受信任的字体阻止:

  1. 打开注册表编辑器(regedit.exe)并转到以下注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel \
  2. 如果不存在MitigationOptions键,请右键单击并添加新的QWORD(64位)值,并将其命名为MitigationOptions.
  3. 要关闭此功能.输入2000000000000.

重要信息:要使更改生效,需要重新启动计算机


fpb*_*bhb 4

听起来很奇怪,解决方案是打开 Windows 防火墙。关闭防火墙后,您甚至无法将 TTF 字体添加到系统中,这与@font-face. 我在这里找到了该解决方案:https://superuser.com/questions/957907/unable-to-install-fonts-on-windows-10