引用字体时图标无法显示_字体文件不存在问题
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">使用CDN后字体图片不显示问题</a></li><li><a href="#_label1">IIS中字体文件不存在问题</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">IIS添加MIME类型</a></li><li><a href="#_lab2_1_1"> nginx</a></li><li><a href="#_lab2_1_2">Apache</a></li></ul></ul></div><h1>最近一个项目,css,js等静态资源做了cdn部署,浏览网站时发现font awesome字体图标通通不能正常显示。只有一些奇怪的符号。浏览器控制台报错信息:font-face引用字体跨域。</h1><p class="maodian"><a name="_label0"></a></p><h2>使用CDN后字体图片不显示问题</h2>
<p>1. 查看字体文件路径,跟URL路径是相同的HTTPS,而且都是相同的二级域名,这就奇怪了,怎么会报错字体跨域呢。</p>
<blockquote><p>跨域:当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。</p></blockquote>
<p>2. 突然想起css做了cdn部署,而字体css文件的文件格式.eot、.woff、.woff2没有加入cdn,cdn缓存配置中加入。</p>
<p>3. 强制刷新网页后,发现还是不行,但是控制台报错信息变了。提示字体文件不存在,复制字体文件也无法打开。</p>
<p class="maodian"><a name="_label1"></a></p><h2>IIS中字体文件不存在问题</h2>
<p>浏览器中字体文件无法打开,但是服务器中文件真实存在。原因是服务器不支持该文件。应该加入MIME类型。</p>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3>IIS添加MIME类型</h3>
<div class="jb51code"><pre class="brush:xhtml;">.woff2 application/x-font-woff</pre></div>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3> nginx</h3>
<div class="jb51code"><pre>location ~* \.(eot|otf|ttf|woff|woff2|svg)$ {
add_header Access-Control-Allow-Origin *;
}
AddType application/x-font-woff woff
AddType application/x-font-woff2 woff2</pre></div>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3>Apache</h3>
<div class="jb51code"><pre>location ~* \.(eot|otf|ttf|woff|woff2|svg)$ {
add_header Access-Control-Allow-Origin *;
}
AddType application/x-font-woff woff
AddType application/x-font-woff2 woff2</pre></div>
<p></p>
頁:
[1]