nginx 配置 CORS 支持跨域访问
kevin.Zhu 发布于:2013-1-16 13:29 分类:Nginx 有 15 人浏览,获得评论 0 条
http://bo-hai.iteye.com/blog/2154706
CSS代码设置了一些字体,如果跨域访问这些字体,就会加载失败。错误信息如下:
-
已阻止交叉源请求:同源策略不允许读取 http://XXXXXX.com/aimall/spm_modules/fontawesome/fonts/fontawesome-webfont.woff?v=4.2.0 上的远程资源。可以将资源移动到相同的域名上或者启用 CORS 来解决这个问题。
解决方案是:在nginx的配置中进行配置,配置如下:
-
location ~* \.(eot|ttf|woff)$ {
-
add_header Access-Control-Allow-Origin *;
-
}
###############################################################################
刚才碰到一个css加载字体跨域问题,记录一下啊。
站点的动态请求与静态文件请求是不同的域名的。站点的域名为 www.domain.com,而静态文件的域名为 st.domain.com。
问题:
页面中加载css文件:<link rel="stylesheet" href="http://st.domain.com/css/uniform.css" />
此css中调用了外部字体如下:
@font-face {
font-family: 'FontAwesome';
src: url('../font/fontawesome-webfont.eot');
}
浏览器报请求跨域的错误。
解决方案:
我们使用Access-Control-Allow-Origin:* 通过启用cors 来解决跨域问题。
具体步骤如下:
1.开启apache的mod_headers模块
LoadModule headers_module modules/mod_headers.so
2.在st.domain.com的主机配置中加入
Header set Access-Control-Allow-Origin http://www.domain.com
重启apache。