解决cdn中,字体文件的跨域问题

由于网站加载字体资源使用的是cdn的域名,这样主域名和cdn域名就形成跨域访问,在主域名的网站无法加载资源域名中的字体。

处理这种跨域,只要设置Access-Control-Allow-Origin,允许目标域名访问就可以了。

在资源类的域名下做如下Nginx配置。

#nginx配置

location ~ .*\.(eot|ttf|ttc|otf|eot|woff|woff2|svg)(.*) {

    add_header Access-Control-Allow-Origin http://www.yourdomain.com;

}

配置好后,reload nginx配置,再刷新CDN缓存,就可以了。CDN也会缓存原始资源的Response Header。


Access-Control-Allow-Origin 头部只能设置一个域名,不能设置多个。如果要支持多个域名,简单的做法是设置成 “*”。

#nginx配置

add_header Access-Control-Allow-Origin *;