Hexo Icarus 主题博客访问加速教程

Hexo Icarus 主题博客访问加速教程

本文将介绍 专门针对 Hexo Icarus(伊卡洛斯)主题 不更换域名 (仍用 xxx.github.io)的 完整加速方案
整套流程分为 3 个层面:

  1. 公共资源替换(CSS/JS/ 字体全部走国内可访问的 CDN)
  2. 主题级优化(关闭耗时的 Google Fonts、动画、Moment 语言包按需加载)
  3. 可选进阶(Pjax 局部刷新、图片压缩、懒加载)

✅ 第一步:一键把主题默认 CDN 换成「loli 国内镜像」

Icarus 的配置文件不在 themes/icarus/_config.yml,而在 站点根目录
_config.icarus.yml(没有就自己新建)。末尾追加或修改:

1
2
3
4
5
# 国内镜像 CDN(loli = cdn.jsdelivr.net 的国内节点)
providers:
cdn: loli
fontcdn: loli
iconcdn: loli

保存后执行

1
hexo clean && hexo g && hexo d

此时主题所有 CSS、JS、FontAwesome 图标都会走 loli 节点,国内加载速度立刻明显提升 。


✅ 第二步:彻底去掉 Google Fonts(可选,再省 1~2 次请求)

Icarus 默认会额外请求 Google Fonts,国内经常超时。
打开主题目录:

1
themes/icarus/layout/common/head.jsx

找到

1
2
3
4
const fontCssUrl = {
default: fontcdn('Ubuntu:wght@400;600&family=Source+Code+Pro', 'css2'),
cyberpunk: ...
};

把整段注释掉或改成空对象即可:

1
const fontCssUrl = {};

保存后重新 hexo clean && hexo g && hexo d


✅ 第三步:Moment.js 按需加载语言包(再省 50 KB+)

Icarus 默认一次性加载完整 Moment.js 语言包。
编辑:

1
themes/icarus/layout/common/scripts.jsx

把原来的

1
2
<script src={cdn('moment', '2.29.1', 'min/moment.min.js')}></script>
<script src={cdn('moment', '2.29.1', `locale/${language}.min.js`)}></script>

改成 只加载当前语言

1
2
<script src="https://cdn.jsdelivr.net/npm/moment@2.29.1/min/moment.min.js" defer></script>
<script src={`https://cdn.jsdelivr.net/npm/moment@2.29.1/locale/${language.toLowerCase()}.min.js`} defer></script>

并在 _config.icarus.yml 中关闭不需要的插件:

1
2
plugins:
animejs: false # 关闭首页动画

✅ 第四步(可选):本地图片 / 第三方库全部走 jsDelivr

source/imagessource/csssource/js 等目录推送到 GitHub,然后在模板里统一换成:

1
https://cdn.jsdelivr.net/gh/< 用户名 >/< 仓库 >@< 分支 >/ 路径 / 文件名

例如:

1
<img src="https://cdn.jsdelivr.net/gh/yourname/yourblog@main/source/images/avatar.jpg">

✅ 第五步(可选):启用 Pjax 局部刷新

Icarus 已有人给出集成示例,做法如下:

  1. _config.icarus.yml 中注入脚本:
1
2
3
4
inject:
head:
- <script src="https://cdn.jsdelivr.net/npm/pjax@0.2.8/pjax.min.js"></script>
- <script src="/js/pjax-init.js"></script>
  1. 新建 source/js/pjax-init.js
1
2
3
4
5
6
7
8
9
10
11
/* global Pjax */
document.addEventListener('DOMContentLoaded', function () {
new Pjax({
selectors: [
'title',
'.column.main',
'.navbar-start',
'.navbar-end'
]
});
});
  1. hexo clean && hexo g && hexo d 即可生效 。
  2. 如果你是 3.x 以上版本,直接在_config.icarus.yml 中搜索相关选项启动即可

✅ 第六步(可选):图片压缩 + 懒加载

安装 Hexo 官方图片压缩插件:

1
npm i hexo-all-minifier --save

在站点 _config.yml 末尾追加:

1
all_minifier: true

再安装懒加载:

1
npm i hexo-lazyload-image --save

_config.yml 追加:

1
2
3
4
5
6
lazyload:
enable: false
onlypost: true # optional
loadingImg:
isSPA: true # optional
preloadRatio: 3 # optional, default is 1

📌 效果验证

做完 1~3 步后,用 Chrome DevTools → Network 观察:

  • 所有 CSS/JS 域名已变成 cdn.jsdelivr.net

  • 不再出现 fonts.googleapis.comfonts.gstatic.com

  • 首包时间从 3~5 s 降到 1 s 左右(视网络而定)


🎯 一句话总结

只改 _config.icarus.yml + 注释 Google Fonts + 按需加载 Moment,就能让 Icarus 在 GitHub Pages 国内访问速度翻一倍;如需再快,再走 Pjax 与图片压缩。

作者

Xuzx-Ricky

发布于

2025-08-18

更新于

2025-08-18

许可协议


评论