我们的一些IE11客户端在我们的Web应用程序中没有看到“font-awesome”webfonts。我已经使用我们自己的IE11实例进行了大量测试,也通过跨浏览器测试工具进行了测试。全部正确执行。所以我很难理解为什么IE11的某些设置可能看不到“Font-Awesome”的webfonts?我确实尝试更改安全设置以复制问题,但没有成功。
所以我正在就可能导致此问题的原因寻求一些建议?我能想到的另一件事是,如果是通过Citrix这样的共享服务器提供IE。
提前致谢。
EDIT1
更多证据:
Desktop1 S/W Firewall(on/off) Windows 7 IE V11.0.9600.17959 Office Errors
Laptop1 No S/W Firewall Windows 7 IE V11.0.9600.17959 Office OK
Laptop1 No S/W Firewall Windows 7 IE V11.0.9600.17959 Home OK
Azure VM ?? S/W Firewall Windows 10 IE V11 via Edge Azure OK
Azure VM ?? S/W Firewall Windows 10 Edge Azure OK
Laptop2 ?? S/W Firewall Windows 10 Edge Home Errors
更多证据2
当我第一次进入页面时,图标显示。当用户从超链接重新进入页面时,图标不显示。但是ctrl-F5对它进行排序。
更多证据3
我也看到链接到可点击字体的Ajax链接请求变为非活动状态。
更多证据4
当我将我的网站添加到“受限制”时,我甚至无法登录,所以我不相信这就是原因。
发现问题的原因。
我的问题是由IE浏览器历史记录设置通过
引起并修复的Cog
- Internet Options
- General
- Browsing History
- Settings
- Temporary Internet Files
- Automatic (will cause issue)
- Every time I visit the webpage (will fix issue)
下面的答案仍然会引起问题,但不是我个案中的原因
发现问题的原因,但不适用于HTTPS
刚刚发现如果我尝试通过Cloudflare实现HTTPS,问题就出现了......
答案 0 :(得分:5)
我注意到"受限制网站" 中的网站(在Internet Explorer中)不显示字体很棒而在#34;信任中的网站网站及#34; zone do。
所以我猜这个问题是针对不同用户的不同IE安全设置。
您是否可以要求用户在IE中检查/更改其选项,例如(IE 11的说明,但其他人将非常相似):
N.B。如果您不使用https,您可能还需要选项
请求用户进行这些更改,然后从那里进行故障排除。
如果您可以访问任何用户的计算机,可以远程访问,或者您可以指导任何高级用户,那么也可以尝试使用其计算机上的优秀Fiddler http代理进行调试看看http请求/响应级别发生了什么。
您还可以更改自己的IE安全设置,以查看是否可以复制问题
答案 1 :(得分:2)
在我的情况下,我只能在使用Win 10 + IE 11时看到此问题。即使在确保正确的IE设置(启用安全区和字体下载)之后,字体也不会呈现。似乎不应该为字体设置缓存标头。
我们正在使用Spring MVC和Tomcat。在CORS过滤器中添加以下代码解决了我的问题。
if (!request.getServletPath().endsWith(".woff")
&& !request.getServletPath().endsWith(".ttf")) {
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", -1);
}
答案 2 :(得分:1)
答案 3 :(得分:1)
如果您无法为DISA STIG安全原因try this solution that shows you how to Base 64 a font启用可下载字体,请将其用作CSS文件以推送字体。
答案 4 :(得分:0)
从下载字体的端点的响应头中删除Pragma Header为我解决了。
if (request.getServletPath().contains(".woff") || request.getServletPath().contains(".ttf")) {
headers.remove(HttpHeaders.PRAGMA);
}