中文网站的开发者,经常遇到的一个问题是“如果我想在网站上用一个好看的中文字体,应该怎么办?”
这个问题背后隐藏着 2 个更细节的问题:
- 目前最大的网页字体服务商是 Google Fonts,而它在国内的服务并不稳定。
- 一个英文字体只有几十 KB,而一个中文字体动辄数 MB,多加几个字重就要几十 MB。这会给用户带来非常长的加载时间。

第一个问题,Google Fonts 是完全免费的,而国内似乎很难找到同等稳定的字体服务。
第二个问题的解决方法则是字体切割。你需要将一个数十兆的中文字体拆分成多个小文件,当用户访问网页时,只加载那些需要的文字,这样就能大幅减少用户加载网页的时间。Google Fonts 本身就提供了很好的字体切割功能。
使用国内字体 CDN
我发现了一个免费的字体 CDN 服务是 字图 CDN,这是一个免费中文字体公益 CDN 服务。旨在收集和存储免费可用的中文网页字体。该项目的核心目标是为网页设计师和开发者提供一个便捷的资源库,使他们能够轻松地在项目中使用这些字体,而无需担心版权问题。
目前网站提供了 55 份字体,包括霞鹜文楷、思源宋体、得意黑等非常优美的中文字体,并且包含完整的字重,非常适合国内的网站使用。

不过在具体使用上还需要稍作调整, 比如部分字体的字体名称与 Google Fonts 的字体名称有所不同。你可能需要参考这份 中文字体使用指南 来调整使用方式,它支持 CDN 使用、NPM 引入使用。
同时字图 CDN 提供的字体也解决了字体切割的问题。
需要注意的是,纯免费的 CDN 并不完全可靠。在文档中已经多了一句说明:“由于中文网字计划的 CDN 被多个平台盗用,故未来将缩减提供公共 CDN 链接的相应流量,并且不再保证链接稳定性。所以各位开发者需要自行将字体部署至 CDN 中,为各位的网页加速。”所以如果你只是部署个人博客,可以使用。但如果是重要的商业网站,流量也比较大,还是建议继续往下看。
自行分字并部署到自己的 CDN 上
如果网站有自己的 CDN,那么建议用 cn-font-split 自行部署一个分字服务,对自己需要用的字体进行分字,并将内容托管在 CDN 上。
cn-font-split 这个服务的作用是,将一个完整的字体文件,拆分成多个 css 文件 + woff2 字体文件。然后你只需要将这些文件部署到自己的 CDN 上,然后在项目中调用这个 CSS 文件,就可以实现与 Google Fonts、字图 CDN 类似的效果,来解决中文字体加载速度的问题。
具体操作的步骤,可以参考中文网字计划的文档中,关于中文分字服务的说明文档《cn-font-split 使用指南》。你可以通过 Nodejs、Bun 等形式进行部署 🔗 cn-font-split - GitHub 这个项目。