当前站点使用的是落霞孤鹜开源字体(强烈推荐,很适合用于博客站,中文阅读很舒服)
但是字体文件为ttf格式,并且很大有29MB左右,每次进网站加载字体都要很久。
之前博客使用hexo + github pages的时候,文本基本都是静态文件,使用静态的字体压缩(gulp,font-spider等)基本没什么问题。
但是由于github pages在国内感人的加载速度,我就自己写了一个博客和其管理页面集成到我的主站里。我的文章内容是从后端接口拿的,带来的问题就是静态的字体压缩已经不能满足我了。
字体分包
经过在网上一番搜索了解到,Google Fonts提出可以采用机器学习等手段,将字体拆分成合适的粒度,比如把一个 4MB 的字体包分成 100 个 40KB 的字体包,这样的话,一般网页中使用到的中文也只是一部分字体,只需要加载多个资源包就能完全覆盖。同时,就算网页中有很多生僻字,需要付出的代价也只是多加载几个资源包。
并且✨中文网字计划已经提供了在线分包工具,可以将一个大的ttf字体包,分成很多个大小只有几十KB的woff2包,这样按需加载就快多了。
在现代字体中,WOFF2 是最新的字体格式,支持的浏览器最广,也提供了最好的压缩率。由于它使用 Brotli 算法,WOFF2 比 WOFF 格式的压缩效果提高了 30%,这意味着需要下载的数据更少,因此可以获得更快的性能表现。

一个字体在经过 在线字体分包 或者 代码工具分包 后,会得到成品文件夹,里面包含了细分 woff2 文件、CSS 索引文件、reporter.json 等静态文件。
网站引用
1. 导入CSS文件
<link rel="stylesheet" href="/font/style.css">
2. 使用字体名称
p{
font-family: 'LXGW Wenkai Screen'; // 这个名称你需要到`result.css`文件中查看
}
我用的tailwind css,在tailwind.config.cjs中配置
theme: {
fontFamily: {
'font-lxgw': "LXGW WenKai Screen"
},
extend: {},
}