我们使用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 */
Run Code Online (Sandbox Code Playgroud)
但这里变得奇怪.查看开发人员工具,正在发送字体的HTTP请求,但只接收了几百个字节(可能只是标题).

但HTTP响应正确地将内容长度列为几千字节.

"响应正文"选项卡只显示"无数据可查看".
您可以在网络面板屏幕截图中看到Google字体的行为不是这样的.
在位置栏中粘贴URL会导致下载完整文件.
我有一种情况,Content-Disposition必须删除其中一个响应标头.所以我想写一个servlet过滤器来做到这一点.但我意识到HttpServletResponse只有一种setHeader()方法,但没有方法可以删除它.我怎样才能做到这一点?
首先,这里有一个非常相似的问题:
如何使用javascript检查是否在网页中加载了Font Awesome?
我会试着解释为什么我的问题不同.
我发现浏览器已经开始阻止Web字体,这需要后备解决方案.使用普通的字符范围字体,这很容易:
CSS:
font-family: Lato, "Lucida Grande", Tahoma, Sans-Serif;
Run Code Online (Sandbox Code Playgroud)
然而,字体真棒更难,因为它使用正常范围的字体之外的字符,并且不能有简单的单行css解决方案.
有几个选项可供选择,包括使用图像,或者在某些情况下使用其他字体的字符,类似于图标,但所有方法都需要在个人客户端的浏览器中检查字体是否真实有效.
链接问题的答案说,您可以使用以下代码检查是否加载了字体真棒:
function css(element, property) {
return window.getComputedStyle(element, null).getPropertyValue(property);
}
window.onload = function () {
var span = document.createElement('span');
span.className = 'fa';
span.style.display = 'none';
document.body.insertBefore(span, document.body.firstChild);
if ((css(span, 'font-family')) !== 'FontAwesome') {
// add a local fallback
}
document.body.removeChild(span);
};
Run Code Online (Sandbox Code Playgroud)
但是,我的本地回退永远不会被执行,因为css(span, 'font-family')它实际上返回FontAwesome.我相信这是因为导入的css文件没有问题,而css说字体系列应该是FontAwesome.事实仍然是FontAwesome无法正常工作.换句话说,接受的答案只检查字体是否存在令人敬畏的css,而不是因为安全问题而阻止了Web字体本身.
另一个问题的OP在评论中澄清了为什么他们提出这个问题:
我这样做是因为我正在编写一段js,这些js将被加载到许多不同的页面中,我不确定它们是否会有字体 - 如果它们不是我将要加载它.
我的问题是浏览器阻止网络字体,我希望标题足够清晰,可以被认为是一个分离和不同的问题.Windows 10和IE11的组合设置中存在问题.我已经用尽了我的选择,只需关闭阻止字体的安全设置.
重复的问题解释:
问题根本不是建议问题的重复.这与资源是否加载无关.资源的加载工作正常.主机未被阻止.webapps的呈现和显示是问题,这也在原始问题中解释,但现在再次提到,因为有人建议关闭作为副本.
编辑,进一步阅读:
我在此处解释了关闭阻止Web字体的设置的努力