我是font-awesome图标的新手。我有一个页面,其中有一个用户可以搜索数据的过滤器。我在搜索链接之前添加了字体真棒图标(如下面的截图所示),我可以在除IE 11之外的所有浏览器中看到此图标。有趣的是我在其他页面中也有这个图标,我可以在IE中看到它11,但我看不到这个图标(如下面的屏幕截图所示)。
以下是IE 11的截图:
以下是chrome的截图:
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:18)
我遇到了同样的问题,我通过在<meta http-equiv="X-UA-Compatible" content="IE=edge">
中添加此元标记作为 FIRST 标记解决了这个问题:
no-store
另外,根据white space exclusions option,请检查以下内容:
对于Internet Explorer :您不能在缓存控制标题中提供带
no-cache
选项的文件(参考号:#6454);
对于Internet Explorer和HTTPS :您不在Pragma标头中提供using System; public class Program { public static void Main() { DateTime checkIn = new DateTime(2016, 8, 31); DateTime checkOut = new DateTime(2016, 9, 1); TimeSpan difference = checkOut - checkIn; Console.WriteLine(difference); } }
选项的文件。
答案 1 :(得分:10)
IE在使用HTTP-Header @font-face
传递Pragma=no-cache
时遇到问题。您可以在问题跟踪器here
不幸的是,该问题被标记为无法解决,但有一些解决方法。对我有用的是使用servlet过滤器,避免设置Pragma标头。
其他不适合我的解决方案:
Font-awesome disappears after refresh for all ie browsers ie11,ie10,ie9
答案 2 :(得分:3)
从IE控制台尝试运行以下脚本
$('head').append('<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css" type="text/css" />');
如果有效,则尝试导入CDN而不是在本地存储。
答案 3 :(得分:3)
如果你使用带有Spring Security的Spring MVC,Spring Security会自动添加没有缓存标头,因此会导致IE11上的字体很棒。
我通过在ResourceHandler
中添加WebMvcConfiguration
来解决此问题,因为font-awesome配置为允许浏览器缓存字体。
public class WebMvcConfiguration extends WebMvcConfigurerAdapter
{
@Override
public void addResourceHandlers( ResourceHandlerRegistry registry )
{
registry.addResourceHandler("/assets/vendor/font-awesome/fonts/**")
.addResourceLocations("/assets/vendor/font-awesome/fonts/")
.setCachePeriod(31556926);
}
}
答案 4 :(得分:2)
如果apache服务器正在为字体文件提供服务,请将以下条目添加到httpd.conf或.htaccess中。
AddType application/vnd.ms-fontobject .eot
AddType font/truetype .ttf
AddType font/opentype .otf
AddType font/opentype .woff
AddType image/svg+xml .svg .svgz
<LocationMatch "\.(eot|otf|woff|ttf)$">
Header unset Cache-Control
Header unset no-store
</LocationMatch >
答案 5 :(得分:1)
这修复了IIS中的字体图标:使用以下内容将web.config添加到字体目录:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Pragma" value="none" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
答案 6 :(得分:1)
我遇到了与字体真棒相同的问题。我在.net应用程序中添加了一个自定义的httpmodule。
public class MyHttpModule : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.EndRequest += new EventHandler(Context_EndRequest);
}
protected void Context_EndRequest(object sender, EventArgs e)
{
HttpResponse response = HttpContext.Current.Response;
if (string.Compare(HttpContext.Current.Request.Browser.Browser, "InternetExplorer", StringComparison.InvariantCultureIgnoreCase) == 0)
{
response.Headers.Set("Pragma", "none");
}
}
}
并在web.config中注册该模块。
<system.webserver>
<modules>
<add type="MyHttpModule, Culture=neutral" name="MyHttpModule"/>
</modules>
</system.webserver>
它解决了这个问题。
答案 7 :(得分:1)
我遇到了同样的问题,我刚刚在标签中添加了以下链接,但它确实有效。
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
希望这有帮助!
答案 8 :(得分:1)
我在Font Awesome 4.7和IE 11中存在相同的问题。我通过在<head>
部分中添加以下元信息来解决此问题:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
答案 9 :(得分:1)
我遇到了同样的问题。我的技术堆栈是Spring boot 2.0和Angular 8。 仅当您尝试通过IE 11上的HTTPS刷新页面时,才会出现此问题。
问题是,浏览器(IE 11)期望Cache-Control max-age。您需要为静态资源设置此标头。 要解决此问题,请在application.property文件中设置以下属性。
spring.resources.cache.cachecontrol.max-age=14400
答案 10 :(得分:0)
就我而言,它的.eot字体文件已损坏。我生成了一个新的(+新的.css样式),它解决了这个问题。尝试一下。
答案 11 :(得分:0)
或者,您的Internet Explorer设置可能会阻止浏览器下载字体。在我们其中一台受到严格保护的服务器上就是这种情况。
尝试以下步骤:
答案 12 :(得分:0)
我遇到了同样的问题,到处搜索并且没有运气。看来这是由于Microsoft累积安全性更新特别是停止加载字体/图像:
要修复此问题,您需要安装March补丁:
答案 13 :(得分:0)
我们最近遇到了从Rails应用程序提供Font Awesome字体文件的问题。混乱之处在于我们没有传递Pragma
或Cache-control
响应标头-因此本文中的先前答案有点令人困惑。
总结-此问题是由以下两种情况引起的:
font-face
发起的(对于在本地重新生成此错误至关重要)。Pragma
标头的值为no-cache
,或者在我们的示例中,我们将提供压缩后的所有内容,并且Vary
标头传递的值不是Accept-Encoding
。我们通过在Rack :: CORS配置中添加以下内容来解决此问题:
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
# Setting Vary to Accept-Encoding required or IE11 fonts will not load from local cache
resource('*.eot',
headers: :any,
credentials: false,
methods: [:get],
vary: ['Accept-Encoding'])
end
end
答案 14 :(得分:0)
对于Internet Explorer 11,您可以这样更改CSS:
nb-icon.menu-icon {
visibility: hidden;
}
nb-icon.menu-icon::before{
visibility: visible;
}
答案 15 :(得分:0)
两种解决方案中的任何一种对我都有效