加上cdn后字体跨域

@font-face是CSS3中的一个特性,可以把自己定义的Web字体嵌入到网页中,随着@font-face,越来越多的网页采用字体图标作为网页中的小图形。

比如Bootstrap就采用了Glyphicons 字体图标 在Bootstrap的架构下可以免费使用Glyphicons的250多种图标字体。另外一个比较常用的开源图标字体就是Font Awesome了,内含几百种各种size的图标文件,可以很容易实现Fixed Width,Animated Icons,Rotated,Flipped,Stacked等特性,跟能和Bootstrap无缝配合。悦合同就是使用Font Awesome作为字体图标。

当在配置CDN的时候,duang~~~

字体跨域!!!!!!

由于网站的资源文件使用的是另外的域名(这样做是便于浏览器在加载时可以提高加载效率,关于domain hash也就是多域名来加速访问的问题有空再说),这样主域名和资源的域名尤其是字体文件,就形成跨域访问,在主域名的网站无法加载资源域名中的字体。

处理这种跨域,只要设置Access-Control-Allow-Origin,允许目标域名访问就可以了,Access-Control-Allow-Origin是HTML5新增的一个特性,在资源类的域名下做如下配置(nginx的配置,apache相似处理)?

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

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

}

配置完后,例牌reload配置,刷新CDN缓存,就ok了。

这里说多一句,CDN会缓存当时的Response Header的,每次修改必须刷新CDN缓存,不然浏览器刷死也不会生效。?

CDN配置cors允许跨域访问时注意事项:

1.     目前不支持泛域名添加,如*.12345.com,仅支持域名精确匹配。

2.     目前仅支持配置一条白名单域名。

3.     若使用OSS产品作为源站,OSS与CDN平台同时配置Cors,CDN的配置将覆盖OSS。

4.     若源站为自己的服务器或ECS产品,建议先进行动静分离,静态文件使用CDN加速,CDN控制台配置的Cors功能,仅对静态文件生效。

Header set Access-Control-Allow-Origin "*"
# nginx config
if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){
    add_header Access-Control-Allow-Origin *;
}

原文地址:https://www.cnblogs.com/xiezhi/p/9664544.html

时间: 2024-08-29 21:06:23

加上cdn后字体跨域的相关文章

关于IIS下字体跨域问题

将网站的CSS与项目分离后报了一个错,是因为字体跨域的原因,查了一下资料. 解决方案如下: 1:打开访问的资源iis,在HTTP 响应表头中添加代码名称:Access-Control-Allow-Origin值:* 2:重启IIS 正常. 注意添加后此目录可能绕过同源策略引发安全漏洞. 版权声明:本文为博主原创文章,未经博主允许不得转载.

关于字体跨域

写在前面的话: 跨域问题啊----字体跨域,居然碰到了~~网上搜罗来的答案,有机会的可以试试有没有效 原文:css加载字体的跨域问题   (转载) 刚才碰到一个css加载字体跨域问题,记录一下啊. 站点的动态请求与静态文件请求是不同的域名的.站点的域名为 www.domain.com,而静态文件的域名为 st.domain.com. 问题: 页面中加载css文件:<link rel="stylesheet" href="http://st.domain.com/css/

关于浏览器字体跨域引用问题

apache: 方法1: <Directory "/var/www/html"> <FilesMatch "\.(ttf|otf|eot)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> </Directory> 方法2: 在字体目录下写一个.htaccess Header set Access-Control-Allow-Or

css加载字体跨域问题

刚才碰到一个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';

整站HTTPS后的跨域请求 CORS是否还有效?

| 导语  手Q马上就要全量https了,很多业务都有跨域ajax请求的需求,原来使用的CORS头在HTTPS环境中还继续能用吗?我搜遍了谷歌.百度,都没看到有明确的答案,那么就自己来尝试一下吧. 关于CORS在HTTPS环境下到底效果如何,一直没找到明确的答案.在MDN等网页只能看到CORS是解决HTTP跨域的方案,或者HTTP访问HTTPS/HTTPS访问HTTP都属于跨域范围,但没有人提到两个HTTPS站点能否通过CORS互相访问.那么,就自己动手吧. 首先,使用nodejs搭建一个htt

本地启动项目后cookie跨域获取不到的处理方式

问题现象 ??最近在做Vue项目,很多时候调试代码需要本地访问localhost来进行,然而请求接口是通过代理实现的,那么就会存在一种情况是:代理域名下种植的cookie,在localhost域名下访问不到.尽管在控制台可以看到,但是执行document.cookie,是拿不到对应cookie的. 原因 ??此时的cookie是跨域的,不同的domain,是无法共享cookie的. 处理 ??打开控制台,修改cookie的domain即可,具体操作就是双击对应cookie的domain项,修改为

js中各种跨域问题实战小结(二)

这里接上篇:js中各种跨域问题实战小结(一) 后面继续学习的过程中,对上面第一篇有稍作休整.下面继续第二部分: -->5.利用iframe和location.hash -->6.window.name跨域实现 利用iframe和location.hash实现跨域 想必有很多人像我之前一样,或许只知道上面文中所说的那几种方法.所以,我刚了解到可以用iframe和location.hash来实现跨域的时候,我会想,为什么他们可以实现.iframe是什么,有什么特性,location.hash是什么

IT忍者神龟之jQuery 使用 $.getJSON() 跨域获取 JSON 数据

假设在服务器上有文件 http://test.unmi.cc/json.php 文件,它的内容为: [代码 1] 01 02 03 04 05 06 07 08 09 10 <?php header('Content-type: application/json'); $user = array (     "name"  => "Unmi",     "blog" => "http://unmi.cc" )

spring boot跨域请求访问配置以及spring security中配置失效的原理解析

一.同源策略 同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 什么是源 源[origin]就是协议.域名和端口号.例如:http://www.baidu.com:80这个URL. 什么是同源 若地址里面的协议.域名和端口号均相同则属于同源. 是否是同源的判断 例如判断下面的URL是否与 http://www.a.com/test/index.html 同源 http://www.a