【发布时间】:2015-01-09 17:43:55
【问题描述】:
我们使用 icomoon 作为我们的图标字体,它们在 Chrome 和 Firefox 中运行良好,但在 IE11 中无法显示...有时。它似乎适用于第一个页面加载,但不适用于后续页面加载。清除缓存似乎不会重置它。这个问题可能存在于其他 IE 版本中,目前我们只关注 IE11。
这是我们的@font-face:
@font-face {
font-family: 'icon';
src:url('fonts/icon.eot?-3q3vo5');
src:url('fonts/icon.eot?#iefix-3q3vo5') format('embedded-opentype'),
url('fonts/icon.woff?-3q3vo5') format('woff'),
url('fonts/icon.ttf?-3q3vo5') format('truetype'),
url('fonts/icon.svg?-3q3vo5#rezku') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
font-family: 'icon';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-alphabet:before {
content: "\e600";
}
/* etc etc etc */
但这就是奇怪的地方。查看开发人员工具,正在发送字体的 HTTP 请求,但只接收到几百个字节(可能只是标头)。
但 HTTP 响应正确地将内容长度列为几千字节。
“响应正文”选项卡只显示“没有可查看的数据”。
您可以在网络面板屏幕截图中看到 Google 字体的行为并非如此。
在地址栏中粘贴 URL 会导致下载完整文件。
【问题讨论】:
-
检查您的 mimetypes,并确保字体名称/文件名/字体名称都相同(IIRC,IE 存在通用名称问题)。此外,它们是否来自与您的网站相同的域? (没有子域?)
-
它们来自同一个域。字体名称/等确实匹配。看起来 TTF 被报告为“应用程序/八位字节流”,我会修复它并报告回来。其他 MIME 类型似乎没问题。
-
我将 IE 指向我 Mac 上的开发环境,字体似乎可以正常工作。不知道有什么区别,代码和直播服务器一模一样。
-
尚无修复。我们最终放弃了 IE 支持。
-
@Matthew Rath 嵌入的字体名称是什么意思?
标签: css internet-explorer internet-explorer-11 webfonts