Hexo博客搭建流程
本文最后更新于 2025年8月12日 下午
本文主要记录了自己搭建Hexo博客的流程,主要包括搭建Hexo博客、插件安装和主题美化。
步骤1-5主要为搭建Hexo博客,主要参考了知乎文章从零开始搭建个人博客(超详细),这里就不在赘述,只做补充。
1. 注册GitHub
2. 安装Git
1 |
|
3. 绑定GitHub并提交文件
1 |
|
4. 安装node.js和Hexo
报错处理
-
注意在建立两个文件夹
node_global
与node_cache
时,需要右键设置“属性”
,将用户具有完全属性的权限,否则在npm install webpack
时会报错。感谢大佬!!!,其实直接以管理员身份运行
cmd
就行了。 -
等等。
5. 解析域名
-
ping出来地址是ipv6。ping ipv4的方法:
1
ping github.io -4
-
Hexo部署过程中可能会出现错误:
1
2
3
4
5
6
7
8
9fatal: unable to access 'https://github.com/a956551943/a956551943.github.io/': Encountered end of file
FATAL {
err: Error: Spawn failed
at ChildProcess.<anonymous> (/usr/local/src/hexo/hanyubolg/node_modules/hexo-util/lib/spawn.js:51:21)
at ChildProcess.emit (events.js:376:20)
at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12) {
code: 128
}
} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html解决方式一:
1
2
3
4
5
6
7
8
9
10
11
12##进入站点根目录
cd /usr/local/src/hexo/hanyubolg/
##删除git提交内容文件夹
rm -rf .deploy_git/
##执行
git config --global core.autocrlf false
##最后
hexo clean && hexo g && hexo d解决方式二:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21##进入站点根目录
cd /usr/local/src/hexo/hanyubolg/
##删除git提交内容文件夹
vim _config.yml
##修改
deploy:
type: git
repo: https://github.com/yourname/yourname.github.io.git
# 改为
# GitHub项目主页,点击绿色的Code,SSH
repo: git@github.com:a956551943/weixiaohui.github.io.git
branch: master
##最后
hexo clean && hexo g && hexo d解决方式三:不建议
1
2
3
4
5
6
7
8##进入站点根目录
cd /usr/local/src/hexo/hanyubolg/
##进入depoly文件夹
cd .deploy_git/
##强制推送
git push -f -
完成。
6. Hexo基本技巧
捋一遍文档 | Hexo就基本可以了。
7. 设置主题和主题美化
实现步骤:
-
在GitHub上搜索
Hexo
寻找自己喜欢的Hexo主题。我最终选择了Hexo Fluid主题。一款很成熟的主题,简洁大方,有官方中文教程。 -
主题美化。
解决的一些问题:
问题与解决
Error: Spawn failed
GitHub更换了用户名
-
修改你的GitHub仓库名为
新用户名.github.io
。 -
修改
./Blog
根目录下的_config.yml
:1
2
3
4deploy:
type: git
repo: git@github.com:新用户名/新用户名.github.io.git #你的新仓库地址
branch: main -
其它与你用户名有关的配置。
- Hexo Fluid主题的配置大致没什么需要更改的地方。
- Waline评论系统的配置无需更改。
-
在
./Blog
根目录下打开Git Bash
运行:1
hexo clean && hexo g && hexo d
重新进行部署。
-
打开博客网址验证更新。
-
大功告成。
博客框架
部署方式
静态部署
静态部署是指将网站的所有页面和资源(如 HTML、CSS、JS、图片等)提前生成为静态文件,然后直接放在服务器上供用户访问。用户访问网站时,服务器只需要把这些静态文件返回给浏览器,无需运行后端程序或数据库查询。
动态部署
动态部署,指的是网站内容不是提前生成好的静态文件,而是由服务器在用户访问时动态生成网页。
- 例如:传统的 WordPress 博客、论坛系统等,都是动态网站。
- 用户访问时,服务器会执行后端程序(如 PHP、Node.js、Python),查询数据库,生成 HTML 页面,然后返回给用户。
- 动态网站可以实现复杂的交互,比如用户登录、评论、后台管理等。
对比
静态部署(如 Hexo) | 动态部署(如 WordPress) | |
---|---|---|
网页生成方式 | 预先生成好所有网页 | 用户访问时实时生成网页 |
服务器负载 | 很低,直接返回文件 | 通常偏高,需要运行后端程序 |
内容更新 | 需重新生成并部署 | 可直接在后台编辑 |
安全性 | 较高,无数据库和后台入口 | 有数据库和后台,需防护 |
交互能力 | 一般较弱,适合浏览展示 | 强,支持互动和复杂功能 |
常见的静态博客框架
Hexo
Hexo 是一个基于 Node.js 的快速、简单且强大的静态博客框架。它广受开发者和技术爱好者欢迎,适合搭建个人博客、技术文档、作品集等网站。
主要特点
- 静态网站生成:Hexo 会将你的 Markdown 或其他格式的内容,生成静态 HTML、CSS、JS 文件,方便部署到各种静态托管服务(如 GitHub Pages、Vercel、Netlify 等)。
- 极速构建:生成网站速度快,即使内容较多也能在几秒内完成构建。
- Markdown 支持:原生支持 Markdown 格式,写作体验流畅,方便技术写作者。
- 丰富的主题与插件:拥有大量高质量主题和插件,可以自定义外观和功能(如评论、搜索、SEO优化、社交分享等)。
- 易于部署:支持一键部署到多种平台,维护简单,无需服务器和数据库。
- 强大的中文社区:有丰富的中文文档和教程,新手入门容易,遇到问题也能很快获得帮助。
适合人群
- 想要快速搭建个人博客的开发者或技术爱好者
- 追求简洁、无需复杂后台和数据库的内容发布者
- 希望自定义网站风格和功能的用户
其它
除了 Hexo 之外,常见的静态博客框架还有以下几种:
名称 | 语言和环境 | 特点 | 适合人群 |
---|---|---|---|
Jekyll | Ruby | GitHub Pages 原生支持;广泛的主题和插件生态;Markdown 支持好。 | 习惯 Ruby 或 GitHub Pages 用户。 |
Hugo | Go | 极快的生成速度(静态文件秒级生成);支持多语言;主题丰富。 | 对构建速度有极高要求的用户。 |
Gatsby | JavaScript(基于 React) | 支持动态数据(GraphQL);可生成静态和动态页面;高度可扩展。 | 前端开发者,喜欢 React 技术栈。 |
VuePress | JavaScript(基于 Vue) | 易于与 Vue 项目集成;适合文档和博客;主题配置灵活。 | Vue 用户、文档驱动型网站。 |
Pelican | Python | Python 用户友好;插件丰富;支持 Markdown 和 reStructuredText。 | Python 开发者。 |
- 与 Jekyll 比:Hexo 安装更简单,中文文档更丰富,但 GitHub Pages 原生支持更好的是 Jekyll。
- 与 Hugo 比:Hugo 生成速度更快,适合大规模内容,Hexo 更易定制和二次开发。
- 与 Gatsby/VuePress 比:Gatsby/VuePress 更适合前端开发者,支持现代 JS 框架,Hexo 则更轻量,易于部署。
- 与 Pelican 比:Pelican 适合 Python 用户,Hexo 对 Node.js 用户更友好。
- Hexo 适合希望快速搭建、易于定制、中文社区活跃的个人或中小型博客用户。如果你追求速度极致、或有特定语言/框架偏好,可以考虑 Hugo、Jekyll、Gatsby、VuePress 等。
常见的动态博客框架
名称 | 语言 | 特点 |
---|---|---|
WordPress | PHP + MySQL | 全球最流行的博客和网站系统,插件和主题丰富。 |
Typecho | PHP + MySQL | 轻量级中文博客系统,简单易用,扩展性强。 |
Ghost | Node.js + SQLite/MySQL | 专注于写作和内容发布,界面现代,支持会员和订阅。 |
Drupal | PHP + MySQL | 强大的内容管理系统,适合大型网站和社区,博客只是其功能之一。 |
Joomla | PHP + MySQL | 功能强大的 CMS,适合多种类型网站,包括博客。 |
Movable Type | Perl/PHP + MySQL | 曾经流行的博客系统,支持静态和动态发布。 |
Serendipity | PHP + MySQL | 轻量级博客平台,插件丰富,易于定制。 |
Dotclear | PHP + MySQL | 法国开发的博客系统,注重易用性和多用户支持。 |
Textpattern | PHP + MySQL | 简洁灵活,适合内容丰富的网站和博客。 |
Mezzanine | Python + Django | 开源 CMS,适合博客和内容网站,扩展性好。 |