基于Butterfly的深度优化
更新记录
在2022.1jsd出了一些事,导致速度大不如前(甚至起到反效果)所以将jsd加速换为npm+饿了么加速
参考教程
糖果屋优化访问日记里面的部分内容(写的很详细,推荐去看)
摘要
正文
CDN 加速(已失效)
butterflu默认的一些文件不会用jd加速所以请自行更改
2021.1.26更新:npm+饿了么网宿
其实把npm当图床也不错(就是麻烦一点)可npm每一个包好像有大小限制,但你可以无限创建npm包啊,那不就等于无限储存空间吗
首先你需要知道如何创建一个npm包并使用饿了么网宿加速,在这方面已经有很完善的教程了,请移步至npm图床的使用技巧学习
接下来的教程请确保你已经学会了npm图床的用法,并且能做到使用饿了么网宿加速
第一步:确定你的浏览器(我用的是谷歌浏览器,但推荐火狐)
第二部:打开你的博客并按下F12打开控制台,找到”网络“点击,它会让你重新刷新一次,刷新后,你可以看到每一个文件加载的顺序以及大小,速度等等
第三步:在里面找速度很慢的加载项文件,双击,就可以看到具体的属性,复制它的文件名
第四步:去butterflu配置文件中搜索你刚刚复制的文件名,找到相应的源,复制在浏览器打开,一会看到一堆乱七八糟的玩意,不管ctrl+a全选ctrl+c复制
第五步:新建一个npm包,根据被复制文件的后缀新建一个相同名称的文件,并将刚刚复制的内容粘贴进去即可,重复以上步骤把所有推延加载速度的文件换成npm+饿了么网宿加速
如果实在看不懂,我的qq:3378216360(不收费)或者F12查看我的文件源
图片压缩
用imagine进行有损压缩后,再用格式工厂转换为web格式
2022.1.26更新,不需要imagine压缩,直接用格式工厂转web即可!
Gulp 压缩全站静态资源
gulp 能够帮助用户自动压缩静态资源,配合各类下属插件,能够压缩包括 css、js、html 乃至各类格式的图片文件。(图片文件的压缩效果远远不如上文提到的压缩方法,所以此处不再写使用 gulp 压缩图片的内容)
安装 Gulp 插件:在博客根目录 [Blogroot] 打开终端,输入:
1 | npm install --global gulp-cli #全局安装gulp指令集 |
安装各个下属插件以实现对各类静态资源的压缩。
压缩 HTML:
1 | npm install gulp-htmlclean --save-dev |
压缩 CSS:
1 | npm install gulp-clean-css --save-dev |
压缩JS:
1 | npm install gulp-terser --save-dev |
为 Gulp 创建 gulpfile.js 任务脚本。在博客根目录 [Blogroot] 下新建 gulpfile.js, 打开 [Blogroot]\gulpfile.js, 输入以下内容:
1 | //用到的各个插件 |
运行如下指令即可实现压缩上传
1 | hexo cl && hexo g && gulp && hexo d |
合并CSS
注意:并不推荐这种方法,你还不如少减少魔改的css来的直接
将魔改样式整合到 index.css 文件内,减少对服务器的请求次数。
在 [Blogroot]\themes\butterfly\source\css\ 路径下新建_custom 文件夹,然后把魔改样式的 CSS 文件拖动进去。文件目录层级可以表示为以下情况:
1 | source |
在 [[Blogroot]\themes\butterfly\source\css\index.styl 中新增一行代码:@import ‘_custom/你的css文件名.css’,如下
1 | if hexo-config('css_prefix') |
其中// My css为我的css
如果是外链
1 | @import 'https://cdn.jsdelivr.net/gh/username/repo/css/example.css' |
注意:如果不生效请检查jd的缓存
手机端优化
请将如下css添加进你引入的css中
1 | /*移动端优化:去除归档、标签、最新文章、公告、、只保留网站统计*/ |
镜像站支持
目前用的人比较多的有
- vercel:推荐,免费,快速
- gitee:不建议使用,类似GitHub,在国内访问速度快且稳定
- conding:不推荐,已被腾讯收购
使用方式请自行谷歌
PWA
糖果屋教程https://akilar.top/posts/8f31c3d0/
杂项
其实在主题配置中也有许多的设置可以优化访问速度
instantpage(预加载)
找到instantpage将其开启
1 | instantpage: true |
当鼠标悬停到链接上超过 65 毫秒时,Instantpage 会对该链接进行预加载,可以提升访问速度。
默认图片更改
找到default_top_img将其改为自用图片
图片记得按照步骤2进行压缩
1 | default_top_img: 这里填写你的图片链接 |
Pangu(文字格式优化)
找到pangu将其开启
它会自动替你在网页中所有的中文字和半形的英文、数字、符号之间插入空白。
1 | pangu: |
取消文章顶部图
找到disable_top_img将其开启
可以使文章页加载速度提升
1 | disable_top_img: true |
Pjax
通过 ajax 和 pushState 技术提供了极速的(无刷新 ajax 加载)浏览体验,并且保持了真实的地址、网页标题,浏览器的后退(前进)按钮也可以正常使用
开启只需要在 _config.butterfly.yml 中 开启 pjax
1 | pjax: |
结尾
恭喜,你的博客已经完成了优化,可这并不代表结束,我的这篇文章仅仅针对自己的博客需求,如果你想获得更好的体验请自行谷歌教程