Nginx服务器下解决字体图标跨域的问题
当A页面上引用了B域名下的CSS文件,而且这个CSS文件里有字体图标时,这时A页面上是看不到图标的,只能看到一个矩形的框,而且审查元素的面板上会报跨域的错。
解决方法:
1. 进入 /usr/local/nginx/conf
目录,打开 nginx.conf
文件,
/usr/local/nginx/conf
2. 找到当前使用的server及要修改的域名处,增加以下代码并保存:
location ~* \.(ttf|otf|eot|woff|woff2)$ {
add_header Access-Control-Allow-Origin *;
}
3. 在 nginx.conf
文件的同级目录,打开 mime.types
文件并找到以下代码:
application/font-woff woff;
4. 在其上方增加以下代码并保存:
font/ttf ttf;
font/otf otf;
application/font-woff2 woff2;
5. 重启nginx服务器:
/usr/local/nginx/sbin/nginx -s reload
6. 清除浏览器缓存并刷新查看效果,完成。
7. 如果图标还不显示,需要设置字体的根目录,添加root
配置,然后重启nginx并刷新查看。
location ~* \.(ttf|otf|eot|woff|woff2)$ {
root /usr/www;
add_header Access-Control-Allow-Origin *;
}