文章 · 性能优化

自托管字体到底值不值得

把字体托管给第三方 CDN 曾经是省事的默认选择。现在它要回答两个问题:省下的带宽值不值得,以及访问者的 IP 落到了谁手里。

省事的部分

第三方字体服务帮你处理跨域、缓存和格式兼容,接入成本几乎为零。对早期项目来说,这个便利是真实的。

代价的部分

字体请求会带上访问者的来源信息,等于把每个访客的 IP 交给了第三方。在隐私合规越来越严的环境里,这件事本身就是一个需要交代的风险点。

自托管要补的三件事

  • 自己配好缓存头,否则每次访问都会重新拉一遍字体
  • 做好格式回退,保证老浏览器也有可用字体
  • 把字体文件和站点放在同一个域,省掉一次额外的连接建立

结论是分场景的:面向公众的内容站,自托管的收益明显;内部系统赶工期,用现成服务也说得过去。关键是别默认,而是想清楚再选。

评论6

访客

登录后参与评论,你的发言会署上自己的名字。

  • 许原

    许原作者@xuyuan2026-09-04

    先占个位:文里的数字都是本地实测的,测试环境写在文末备注里,有疑问直接在这儿回。

  • 何知白

    何知白@hezhibai2026-09-05

    中文按需加载这块终于有人把量化的过程写出来了,之前看到的都只给结论。

  • 苏晚

    苏晚@suwan_dev2026-09-06

    我们也是这么做的,唯一想补充的是切片之后记得把字体文件放到带长缓存的路径上。

  • 顾青

    顾青@guqing2026-09-07

    对,缓存头配错的话每次访问都会重下,前面省下的全还回去了。

  • 郑一鸣

    郑一鸣@yiming2026-09-07

    想问下这种切片方案在字体版本升级的时候怎么处理?全部重下还是只换变化的分片?

  • 吴桐

    吴桐@wutong2026-09-08

    行高和字距那一段说得很实在,中文确实不能照搬西文那套参数。