惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
量子位
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
Google DeepMind News
Google DeepMind News
小众软件
小众软件
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
MongoDB | Blog
MongoDB | Blog
B
Blog RSS Feed
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
雷峰网
雷峰网
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 求必印

宝塔apache环境配置nodejs管理后台解决接口跨域问题 NodeJS生产环境发布流程 网页使用了艺术字体后加载很慢,字体文件太大,可以优化吗?怎么压缩? 使用宝塔面板FTP服务器无法获取远程列表的解决办法 2024年9月26日记录网站安全性配置优化 P5JS学习笔记 把自己的代码通过npm发包过程 用户中心 - 博客园 防止刷票的一些方法介绍 解决wampserver无法启动问题 mysql远程连接开启与关闭 一键解决win10系统崩溃,重新安装问题处理办法 网页兼容最新IE声明meta方法 httpd进程数统计,IP封禁,IP连接数量情况查看 centos linux服务器apache+mysql环境访问慢优化方法 linux centos windows服务器修改数据库最大连接数的方法 CI框架页面打开空白,无报错为解决方法新环境 LINUX服务器 安装定时任务 设置定任务 Liux定时关机 linux centos系统 php安装GD库扩展
H5前端特殊艺术字体文件太大,可通过font-spider压缩
求必印 · 2023-12-29 · via 博客园 - 求必印
原理:

1.爬行本地 html 文档,分析所有 css 语句
2.记录@font-face语句声明的字体,并且记录使用该字体的 css 选择器
3.通过 css 选择器的规则查找当前 html 文档的节点,记录节点上的文本
4.找到字体文件并删除没被使用的字符
5.编码成跨平台使用的字体格式

简而言之:就是爬出你项目中所使用的文字保留起来,删除没被使用到的文字,并重新打包。

该如何使用字蛛?

一、安装node.js

如果没有node,请安装安装node.js(这里不做详细介绍,可自行百度)。如果已经安装请看下一步。

二、安装字蛛

有vscode编辑器的可以在项目文件夹中打开终端,输入npm install font-spider -g
也可以打开Node.js command prompt如下图所示,并输入命令:npm install font-spider -g 回车执行


npm install font-spider -g

下图显示安装成功:有一点报错,不影响使用

 

三、使用字蛛

1、新建一个font.html页面,下面是font.html中的内容。要根据自己文件夹中有的字体去引入,但是ttf格式的字体是一定要存在的。

注意:

  1. @font-face 中的 src 定义的 .ttf 文件必须存在,其余的格式将由工具自动生成。
  2. 开发阶段请使用相对路径的 CSS 与 WebFont
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*声明 WebFont*/
        @font-face {
        font-family: 'YaHeiBold';
        src: url('./YaHeiBold.eot');
        src:
            url('./YaHeiBold.eot?#font-spider') format('embedded-opentype'),
            url('./YaHeiBold.woff2') format('woff2'),
            url('./YaHeiBold.woff') format('woff'),
            url('./YaHeiBold.ttf') format('truetype'),
            url('./YaHeiBold.svg') format('svg');
        font-weight: normal;
        font-style: normal;
        }
    </style>
</head>
<body>
    
</body>
</html>

2、html文件构建好后,在终端输入font-spider + 你的font.html的位置,然后回车即可。
font-spider ./demo/*.html
页面依赖的字体将会自动压缩好,原 .ttf 字体会备份

下面是我路径:

3、有可能你会出现报错,像下图这样的。出现这样情况就是font.html中的字体路径错了。

4、压缩成功后会自动生成.font-spider文件夹,可以看到原来的字体体积已经小了很多。前面的对比图就是效果。
5、最后一步,在css中引入已经压缩好的字体就行。
 

最后要注意,当网页的字体改变时,要重新生成。