1 min read

Nginx服务器下解决字体图标跨域的问题

当A页面上引用了B域名下的CSS文件,而且这个CSS文件里有字体图标时,这时A页面上是看不到图标的,只能看到一个矩形的框,而且审查元素的面板上会报跨域的错。

Nginx服务器下解决字体图标跨域的问题

解决方法:

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 *;
}