Hexo 零成本建站全记录(Gitee Pages 停服之后)
这篇文章记录我把博客从零搭起来的过程。整条链路是:本地用 Hexo 生成静态文件 → 推送到代码仓库 / 上传到静态托管 → 平台对外提供访问。
全程不需要服务器,也不需要买域名。
重要更新(2026-10):原视频使用的 Gitee Pages 已于 2024 年 5 月下线,仓库还能正常托管代码,但 Pages 服务无法再开通,旧教程里的「服务 → Gitee Pages → 启动」已经找不到了。本文保留 Hexo 的完整搭建流程,并把最后的托管环节换成目前仍然免费可用的方案。
一、准备环境
需要两个工具:
- Node.js(LTS 版本即可):Hexo 运行在 Node 上;
- Git:用来把生成好的静态文件推到代码仓库。
装完后打开终端验证:
1 | git --version |
三条命令都能输出版本号,就说明环境没问题。
顺手配置一下 Git 身份,后面提交记录会用到:
1 | git config --global user.name "你的用户名" |
二、安装 Hexo 并初始化
1 | npm install -g hexo-cli |
初始化完成后先本地跑一下:
1 | hexo s |
浏览器打开 http://localhost:4000,看到 Hexo 的默认首页就成功了。
如果卡在
hexo init拉取模板,通常是网络问题,换手机热点或者挂代理重试即可。
三、写第一篇文章
1 | hexo new "我的第一篇文章" |
文件会生成在 source/_posts/ 目录下。开头那一段被 --- 包起来的内容叫 Front Matter,用来声明元信息:
1 |
|
正文直接写 Markdown 就行。写完后:
1 | hexo clean && hexo g && hexo s |
刷新页面就能看到效果。
四、换一个顺眼的主题
默认主题比较朴素,我换成了 NexT。安装方式有两种:
1 | # 方式一:npm 安装(推荐,升级方便) |
然后在根目录 _config.yml 里改一行:
1 | theme: next |
NexT 的所有个性化配置都集中在根目录的 _config.next.yml 里,包括配色方案、菜单、头像、社交链接、代码高亮风格等。改完重新生成即可。
五、上线:三种仍然免费的托管方式
方案 A:Cloudflare Pages(推荐,默认域名可直接公开访问)
- 注册 Cloudflare;
- 进入 Workers & Pages → Create → Pages → Upload assets;
- 项目名可以用
shiguang-blog,把本地生成的public文件夹(或 zip)拖进去; - 部署完成后得到
https://项目名.pages.dev,这就是可以直接分享的公开地址; - 以后更新:重新上传一次
public即可。
不需要域名、不需要备案,国内通常可以访问,但速度取决于 Cloudflare 的出口线路。
方案 B:EdgeOne Makers(国内速度快,但默认域名只是临时预览)
腾讯云 EdgeOne Makers 的静态托管免费、国内节点也快,但要注意:项目域名 *.edgeone.dev 在中国大陆是 3 小时有效的预览链接,过期会返回 401。要长期公开访问,必须绑定自己的域名(全球区不含大陆无需备案,大陆区需要备案)。
- 打开 EdgeOne Makers,登录腾讯云并实名;
- 上传
public(或 zip); - 在控制台点「预览」可以拿到临时链接;
- 想长期使用,就在域名管理里绑定自己的域名,再把域名填回
_config.yml的url。
方案 C:GitHub Pages(和原教程最接近,一条命令部署)
- 注册 GitHub;
- 新建仓库,仓库名必须是
你的用户名.github.io,可见性选 Public; - 修改
_config.yml:
1 | url: https://你的用户名.github.io |
- 执行部署:
1 | hexo clean && hexo g && hexo d |
- 进入仓库的 Settings → Pages,确认 Source 是
main分支的根目录; - 等一两分钟,访问
https://你的用户名.github.io。
说明:GitHub 在国内的访问速度不稳定,适合能正常访问 GitHub 的读者。
六、日常更新
无论用哪种托管方式,本地流程都一样:
1 | hexo clean # 清掉旧的静态文件 |
- 用 GitHub Pages:再执行
hexo d; - 用 Cloudflare / EdgeOne:把新生成的
public重新上传。
常见问题
| 现象 | 原因 | 解决 |
|---|---|---|
| 页面能打开但样式全丢 | url 配置或仓库名不对 |
仓库名与用户名保持一致,url 写成最终访问地址 |
| 部署报错找不到仓库 | 地址或分支写错 | 检查 repo 是否是 HTTPS 地址,分支是否存在 |
| 主题配置不生效 | YAML 缩进或冒号后缺空格 | 用两个空格缩进,冒号后补空格 |
| 访问 404 | Pages 未启用或目录选错 | 检查平台的发布分支与目录设置 |
hexo d 提示无权限 |
密码 / 令牌错误 | 清除 Windows 凭据管理器里的对应记录后重试 |
| Gitee Pages 入口不见了 | 该服务已下线 | 改用本文的方案 A / B / C |
小结
Hexo 负责「把 Markdown 变成静态网站」,托管平台只负责「把文件放到公网上」。两者是解耦的,所以 Gitee Pages 下线并不会让这套方案失效——换一个静态托管就行。
真正麻烦的从来不是工具,而是开始写第一篇。