【问题标题】:IE font-face fails to load when not using FQDN不使用 FQDN 时无法加载 IE 字体
【发布时间】:2013-07-13 06:35:28
【问题描述】:

我在我的 CSS 中定义了一个字体,如下所示:

@font-face {
  font-family: 'iconFont';
  src: 
      url('../fonts/iconFont.eot?') format('eot'), 
      url('../fonts/iconFont.woff') format('woff'), 
      url('../fonts/iconFont.svg#iconFont') format('svg'), 
      url('../fonts/iconFont.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

我还有一些其他类似格式的字体。当使用我的 PC 的完全限定域名(例如“mypc.mydomain.local”)时,Internet Explorer 9+ 会检索字体并正确呈现页面。但是,当只使用我的笔记本电脑的主机名(例如“mypc”)时,IE 甚至从不尝试检索字体。我已经使用Fiddler 确认了这一点。

我可以看到的唯一区别是不同的安全区域有效,具体取决于是使用完全限定名称(Internet)还是仅使用主机名(本地 Intranet)。这两个区域都设置了“下载字体”以在我的 PC 上启用。

如果它与安全区域有关,那么令人惊讶的是,Intranet 设置似乎比 Internet 设置允许的要少。或者它是 IE 中的一个错误。

无论我使用什么主机名,Firefox 都会正确下载字体并呈现。

【问题讨论】:

  • 你的笔记本IE是什么版本?
  • 笔记本电脑在 Windows 8 上运行 IE 10。也出现在 XP 上的 IE 9 上。

标签: html css internet-explorer font-face


【解决方案1】:

Internet Explorer 对 WOFF 字体强制执行同源或 CORS 检查。如果您在“mypc.mydomain.local”中有一个页面,则它不能使用“mypc”中的字体,除非存在正确的Access-Control-Allow-Origin 标头。

https://developers.google.com/fonts/docs/troubleshooting#CORS_header

【讨论】:

  • 我提供来自与 CSS 相同站点的字体。字体 url 是相对的,所以我假设在字体 url 中将使用相同的服务器名称。还是我错过了什么?
  • 如果有的话,您在 IE 的 F12 开发人员工具的控制台选项卡中看到了什么?您的 HTML 文件究竟是如何引用您的 CSS 文件的?您的页面是否处于 IE 标准模式?
  • 以下错误:“CSS3114:@font-face 未能通过 OpenType 嵌入权限检查。权限必须是可安装的。”显示在控制台中。我已经改回使用 googleusercontent url,而不是嵌入它们。这也表明该页面正在我不想要的“兼容性视图”中运行。仍在调查。
猜你喜欢
  • 2013-10-04
  • 2014-07-27
  • 2011-04-10
  • 2016-12-24
  • 2012-11-23
  • 2016-08-03
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多