开启 HTTPS 之后 网站出现字体文件跨域的问题 请问如何解决?

2018-12-04 16:13:07 +08:00
 HSvng

尝试过网上一些方法都不行...

4067 次点击
所在节点    程序员
14 条回复
boluo
2018-12-04 16:29:13 +08:00
作为一个懒人,我选择字体本地化…
moonsola
2018-12-04 16:29:15 +08:00
先说清楚尝试过哪些方法。难不成让大家一个一个猜?
KasuganoSoras
2018-12-04 16:31:54 +08:00
首先,字体文件存储的服务器必须也要支持 HTTPS
然后,如果字体所在的服务器和网站不是同一个域名,也就是跨域的话,需要在存储字体的服务器设置 Header
access-control-allow-origin
想省事一点的话就 access-control-allow-origin: *,但是人家可以直接跨域引用你的字体文件,当然如果你不担心自己流量爆炸的话……随意吧
yangehappy
2018-12-04 16:36:25 +08:00
字体文件是 http 还是 https
duan602728596
2018-12-04 16:39:07 +08:00
如果是 cdn 的话,换成 https 的地址啊
phpcxy
2018-12-04 16:56:44 +08:00
放七牛去~
jifengg
2018-12-04 17:31:04 +08:00
https 和跨域是两个不同的问题吧。我觉得你出现的问题应该是启用了 https 之后,浏览器不允许你加载非 https 的资源( chrome 可以加载,但是会提示不安全,ios 貌似直接就不允许)。解决办法就是字体文件也换 https 的。
Tink
2018-12-04 18:19:29 +08:00
放自己服务器上
flowfire
2018-12-04 19:19:30 +08:00
字体不会有跨域问题,我觉得你最好贴一下报错代码或者截图,以及建议移动到 问与答 节点
Sparetire
2018-12-04 19:36:33 +08:00
字体在有些浏览器会跨域的,需要配 cors
mandy0119
2018-12-04 20:29:08 +08:00
https 跟跨域没关系把。 应该是之前使用的链接是 http,https 内是不允许使用 http 资源的
davin
2018-12-05 00:31:59 +08:00
楼主没有说清楚具体是什么样的字体,有的字体是有版权的,不可以放在服务器上进行引用。
envylee
2018-12-05 10:28:29 +08:00
我是把字体放在又拍云,七牛应该也一样,设置好调用域名的白名单;之后是去你自己服务器上写好 rewrite 规则就行;字体跨域的文章很多,你主要是检查下自己的规则有没有写对,你说找不到肯定是不存在的。
envylee
2018-12-05 10:43:20 +08:00
不过我觉得如果只是少数几个必须字体或者 iconfont 的话你完全可以把需要用到的部分提取出来合并成一个字体文件,然后格式选 woff2,压缩效果也还不错;

腾讯前端还是哪家去了也有现成的开源框架,如果是复用很高的字体的话他们还有 win 端的软件可以一次性提取生成新的 otf。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/514243

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX