阿里云OSS对象存储遭遇ttf字体文件请求被取消小坑!-字体文件

阿里云OSS对象存储遭遇ttf字体文件请求被取消小坑!

6分钟先生有个小网页,用到了bootstrap,原本直接使用bootstrap的cdn加速网址引入bootstrap,用了一段时间,发现有些网络(如深圳的长城宽带)打开的时候常常会卡在bootstrap的cdn文件域名解析过程,导致超过1分钟都打不开网页,这个问题严重了!!

附上bootstrap的官网地址:

http://getbootstrap.com/

以及他们的cdn引入网址:

<!-- Latest compiled and minified CSS -->

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Optional theme -->

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->

<script src="http://www.shangyouw.cn/uploads/allimg/190806/13251244A-1.webp" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

有没有低价的方案,可以保持bootstrap的css、js、fonts等静态文件依然可以高速访问呢?

阿里云的OSS对象存储是个不错的选择,1G流量0.25 - 0.5元,对于小网站来说,几乎是0成本,却可以瞬间享受跟淘宝一样的高速访问静态资源的服务,为啥不用呢?

于是把bootstrap的所有文件上传到OSS里,把网页头部引入的css文件路径修改为OSS的域名,很期待地刷新页面。

结果,网页和css、js确实秒开了,但是chrome报了三个错误,一看是.ttf、.woff和.woff2都无法访问了,网页上的“glyphicon-share”图标显示破图。

查看chrome的报错,原来是CORS跨域访问被限制了。

找到阿里云帮助文档里关于CORS跨域规则的设定,在OSS里的Bucket属性里对应页面,增加完规则保存后,再重新打开网页,O了!

CORS规则如图所示(来源这里切记要修改成你自己的域名):

阿里云OSS对象存储遭遇ttf字体文件请求被取消小坑!补充说明:

第一个选项“来源”里请填写上你的域名,如:

xx.com

*.xx.com

问题解决啦!

最后,啥是CORS跨域访问限制规则或标准呢?

抱着知其然还要知其所以然的心态,谷歌(别问我怎么打开的)了下cors,贴上两个网址如下。

W3C的原名“Cross-Origin Resource Sharing”标准协议:

https://www.w3.org/TR/cors/

希望锻炼英文的同学可仔细阅读下。

懒得看英文的同学可以看这里mozilla浏览器的开发文档“HTTP访问控制(CORS)”:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

-本文由6分钟先生原创,首发于今日头条头条号“6分钟先生”,转载请注明出处!

推荐阅读