现在网站引入中文字体包的情况越来越频繁了,由于中文字体包比较大,如果直接放在服务器上的话,加载速度会很慢,会严重影响访问速度和网站体验,所以我就把字体包放到了阿里云对象存储OSS,然后直接使用字体包的字体,然后发现字体无法直接被使用,前台代码出现以下提示:
在网上搜索一下,好像是与OSS的跨域权限有关,所以登录阿里云账号进入OSS,找到对应的Bucket,如下图所示:
点击该Bucket名称,然后再点击“数据安全”->“跨域设置”,如下图所示:
点击“创建规则”,进入如下图所示的弹窗:
以上设置,来源填写*,允许Methods是最关键的一步,本来一眼就能看到HEAD,直接勾选就行了,然后点击“确定”就行了,但尝试后发现字体包还是无法使用,心想要15分钟左右生效,15分钟后再尝试还是无法使用,然后我对Methods逐个测试,发现GET才是最终的Methods,如下图所示:
点击确认后,创建的规则如下图所示:
上面的提示是15分钟内生效,其实生效时间是即时,就是一点击确认,规则就马上生效。按照这样字体包就可以使用了,顺便说一下,如果你需要通过调用接口上传文件到OSS里,
例如使用前端上传组件Plupload来上传文件,后台使用阿里云自带的SDK插件使上传的文件到OSS里,就需要将Methods的POST勾选上才行,这样就能从外部上传文件到对象存储OSS里。