这事很值得说道,楼上的方法我都有使用。因为最近在手搓一个博客主题,我在里面放了 4 款自定义字体,经过优化以后 pagespeed 依然满分。
简单说下中文字体的优化过程:
1 、下载字体文件转 ttf 格式
2 、用 Fontmin 提取 3500 常用汉字,或 7000 通用汉字。一般 3500 足矣。
3 、用 cn-font-split 进行字体切片,切成大量 woff2 子集,以应对动态变化的字体。官网子集只能切成 75kb 大小,本地运行可以自定义子集大小,我切成平均 25kb 大小。
4 、再把 UI 中的静态字符,例如“主页”“返回”等,单独提取一个 UI 子集出来,并列出对应的 unicode 。5 、在 head 中给 UI 子集设置一条 preload ,确保 UI 字体提前加载。大量切片不能预加载。
6 、引入 fontface 并设置好 unicode 范围,再设置下 fontfamily 就可以了。
另外,以上是静态字体的处理方式,如果是可变字体,处理方式又有点不一样。你这款字体应该是静态,够用了。
这是我的处理后的字体仓库,里面有 3500 常用汉字
https://github.com/radishzzz/astro-theme-retypeset/tree/master/public/font