相关疑难解决方法(0)

图标字体未在IE11中加载

我们使用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会导致下载完整文件.

css internet-explorer webfonts internet-explorer-11

36
推荐指数
2
解决办法
4万
查看次数

如何删除HTTP响应头?

我有一种情况,Content-Disposition必须删除其中一个响应标头.所以我想写一个servlet过滤器来做到这一点.但我意识到HttpServletResponse只有一种setHeader()方法,但没有方法可以删除它.我怎样才能做到这一点?

servlets servlet-filters response-headers

28
推荐指数
1
解决办法
4万
查看次数

如何检查客户端浏览器是否阻止字体真棒?

首先,这里有一个非常相似的问题:
如何使用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字体的设置的努力

javascript css webfonts font-awesome

9
推荐指数
1
解决办法
737
查看次数