我来猜猜:css
一、检查字体路径是否加载对了
二、font-awesome样式文件是否加载对了
三、是HTML中用(千万别加载CSS的硬编码),是CSS中用(千万别加载HTML的硬编码)
四、是否跨域问题存在html
尝试检查是否有下列问题:前端
1. 没有加载 CSS;
2. 没有加载字体文件。web
<i class="fa-home"></i>首页
<i class="fa fa-home"></i>首页
我这两天正好遇到一个相似的问题,困扰了两天终于解决了,实际上是没有在web.xml作js和css文件的拦截处理而已。若是你的路径肯定对的而且下载的js文件也没有错,那确定就是这个缘由了。bootstrap
解决办法:添加以下js css拦截处理
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>跨域
缘由:用servlet-mapping用来截获请求的,在加载请求的时候拦截你定义的资源名或路径,好比js、css、图片等静态资源的,若是没有添加截获请求,那在加载页面的时候就没法处理静态资源文件了,就加载不出来。
好比你在网上找到一个css样式库,引用在线的连接能够加载 如<link href="xxx.xxx.xxx.css">是能够的,
可是你把这个css下载下来,在本地引入 <link href="<%=request.getContextPath()%>/xxx.css" >就失败了。
不知道这样说清楚吗?
(以上只是个人我的认为,不知道对不对,但大概就是这样吧)网络
这种状况很明白不是吗,有个框框说明html引用font-awesome.css没问题,问题是你框框里的字体无法显示,就是说你缺乏了字体。app
而这字体是font-awesome项目文件里引用的,你直接本地下载单个font-awesome是没用。svg
不信你把你引用的font-awesome路径改为网络获取形式好比cdn或https而不是本地相对路径,图标就可能显示。字体
答案就在font-awesome源代码里
so, 既然要本地化那么就必然要递归下去。
一样的道理在于在css文件里引用背景图片等。