基于Hexo框架搭建个人博客

序言
前言
2025年夏季小学期的开源软件开发课程,第一个实践就是使用 Hexo 搭建一个属于自己的个人博客。
其实在上这门课之前,我自己的博客就已经搭建完成了,所以最开始看到这个实践的时候,我的第一反应是:这部分对我来说应该不会太难,跟着大家再走一遍流程就可以了。
但真正开始帮身边的同学搭建之后,我才发现事情并没有想象中那么简单。
同样的一条命令,在我的电脑上可以正常执行,换一台电脑就可能报错;同样都是 Windows,有的人缺环境变量,有的人 Git 连不上,有的人 SSH Key 配好了却还是无法和 GitHub 正常通信;还有人前面的步骤看起来全部正常,到了最后部署时突然蹦出一大串红色报错。
最折磨人的地方在于,这些问题往往并不会按照教程里写好的顺序一个个出现。
于是那几天我基本就在“自己搭一遍——帮别人排错——搜报错——问 AI——再去验证解决办法”之间来回横跳。虽然确实让人头大,但现在回头看,反而是这些报错让我真正理解了博客搭建的整个流程,也让我意识到:教程真正有价值的地方,并不是把命令复制出来,而是告诉后来的人,我们现在到底在做什么、为什么要这样做,以及出问题的时候应该往哪里找。
所以有了这篇文章。
我希望它不只是一份“复制命令就能跑”的教程,而是一份我自己踩过坑之后留下来的记录。哪怕你是第一次接触 Git、GitHub、Node.js,甚至之前从来没有自己部署过网站,也希望你能顺着这篇文章,一步一步把自己的博客真正搭起来。
如果最后当你第一次在浏览器里输入自己的网址,看到那个真正属于自己的页面出现时,你应该也会和我当初一样,觉得前面那些报错好像突然都值了。
注意!
请保证自己的电脑可以正常访问github.com,很多初始化、主题下载以及后续部署都会依赖 GitHub。
建议会基本使用 AI,例如ChatGPT或DeepSeek。遇到报错时,把完整报错和刚刚执行过的步骤一起发给 AI,通常比只发一句“为什么报错”有效得多。
由于我手头主要是 Windows 设备,并且课程中绝大多数同学使用的也是 Windows,因此本文以Windows为主要环境。
本文最初写于 2025 年,部分软件界面、版本号以及 GitHub 页面布局以后可能发生变化。若截图和你的页面略有不同,不必慌,先看功能和选项名称是否一致。
这篇文章适合谁
这篇教程主要面向下面几类同学:
- 第一次搭建个人博客,不知道 Hexo、Node.js、Git 分别是干什么的;
- 想拥有一个真正属于自己、可以自由折腾的网站;
- 已经按照别的教程搭过一次,但中间被各种奇奇怪怪的报错劝退;
- 想借搭博客的过程顺手了解一点 Git、GitHub、Markdown 和静态网站部署;
- 单纯觉得别人的博客很好看,也想拥有一个属于自己的“小天地”。
如果你本身已经非常熟悉 Hexo,那么前面的基础部分完全可以快速略过,直接去看后面的主题配置、常见问题和后续折腾方向。
声明
本教程不保证包教包会,也不可能覆盖所有电脑、所有系统环境下可能出现的报错,它更多是我自己实际搭建和帮助同学排障过程中的经验整理。
遇到问题时,我比较推荐按照下面这个顺序处理:
- 先看终端真正报错的那几行,不要看到一大片红字就直接关掉。
- 回忆自己刚才做了什么,问题是出现在安装、初始化、本地预览还是部署阶段。
- 去本文后面的
常见问题板块找相似问题。 - 搜索报错关键词,优先看 Hexo、GitHub、主题的官方文档和 issue。
- 把完整报错 + 当前目录 + 执行的命令 + 已经做过什么一起发给 AI,让它帮你分析。
很多时候,真正解决问题的不是“找到一条神奇命令”,而是先判断到底是哪一环出了问题。
Hexo 官方文档:https://hexo.io/zh-cn/docs/
致谢
感谢以下同学与工具在我搭建和完善博客过程中的帮助:
- XBX:最早给我提供了 Hexo 与 Butterfly 的基础教程,也让我第一次意识到一个 Hexo 博客原来可以被折腾到这种程度。后来不管是博客美化、交互效果,还是部署和访问优化,他的博客都给了我不少思路。【点击访问 XBXyftx 的博客】
- ZXJC:提供了基础教程【点击查看PDF文件】,在实际搭建过程中也一起碰到、解决了不少问题。
- ChatGPT:在看到一些让人完全摸不着头脑的报错时,确实救过我很多次。它不一定每次第一次就能给对答案,但在“帮我理清楚到底哪一步出了问题”这件事上真的很好用。
什么是博客
如果只从技术上来说,Hexo 博客其实就是一堆 Markdown 文章,经过框架和主题处理以后生成出来的一套静态网页。
但如果只这样理解博客,我觉得多少有点可惜。
对我来说,博客首先是一个真正属于自己的地方。
我们当然可以在 CSDN、知乎、公众号、B站、小红书或者各种社区里发内容,而且这些平台通常拥有更大的流量,也更容易被别人看到。但这些地方终究是平台提供给我们的空间:页面长什么样、文章怎么展示、哪些功能能不能用,绝大多数时候都不是我们说了算。
而自己的博客不一样。
你想把背景换成星空,可以;想在首页放一个奇奇怪怪的动画,可以;想加音乐、友链、留言板、AI 搜索、自己写的小工具,也都可以。甚至哪天你觉得现在的整个页面都看腻了,直接推翻重新做一遍也没人拦着你。
这种自由度其实是我最喜欢博客的一点。
博客也是一个记录自己成长的地方。很多东西在当下感觉平平无奇,但过一两年再翻回去看,感受会完全不同。你会看到自己以前写下的第一段代码、第一次折腾服务器时留下的记录、第一次把一个项目真正做出来时的兴奋,甚至还能看到当时那些现在看来有点幼稚的想法。
这些东西如果不记录,很快就会被忘掉。
与此同时,一个长期维护的博客本身也确实能够展示很多东西。它展示的不只是“我会写文章”,还会慢慢涉及前端、Git、服务器、域名、网络、SEO、性能优化,甚至是设计和审美。博客越往后折腾,就越容易从“我只是想写点东西”变成“这个按钮我是不是还能再改改”“这个加载速度还能不能更快一点”“要不我自己写一个功能”。
然后坑就越挖越大(笑)。
但也正因为如此,博客才会逐渐长成真正属于自己的样子。
下面几个就是我个人很喜欢、也很值得参考的博客。它们并不是简单地把一个主题装上去就结束,而是在原有框架上加入了大量自己的想法和功能。大家可以点进去逛逛,感受一下博客到底能被折腾成什么样。
正式开始之前:我们到底要做什么
如果你是第一次接触 Hexo,我非常建议先花两分钟理解一下整个流程。
因为只要理解这个流程,后面很多报错都会变得没那么吓人。
简单来说,我们最终要完成的是这样一条链路:
1 | Markdown文章 |
.png)
这里面几个工具分别负责:
- Node.js:Hexo 的运行环境,可以理解成 Hexo 能够在你电脑上工作的基础。
- npm:跟随 Node.js 一起安装,用来下载 Hexo、主题依赖和各种插件。
- Git:负责版本管理,同时也是我们和 GitHub 打交道的重要工具。
- GitHub:用来存放仓库,并通过 GitHub Pages 把生成出来的网站放到互联网上。
- Hexo:把我们写的 Markdown 文章转换成静态网页。
- Butterfly:决定博客最终长什么样子。
所以以后如果遇到报错,可以先问自己一句:
我现在到底是在 Node/npm、Git/GitHub、Hexo,还是 Butterfly 这一层出问题?
只要能先缩小范围,排查就已经成功一半了。
工具安装与准备工作
正式开始前,我们需要准备:
- 可以稳定访问 GitHub 的网络环境
- Node.js
- Git
- GitHub 账号
网络环境
如果大家可以正常访问 GitHub 以及相关国外资源,请直接略过这一部分。
Hexo 本身并不要求你使用什么特殊网络,但我们在初始化 Hexo、克隆主题、连接 GitHub 时都可能访问 github.com。
如果 GitHub 页面本身都打不开,后面出现 timeout、connection reset、failed to connect 等报错其实就很正常了。
因此在正式开始之前,至少先确认下面这个网址能够正常打开:
如果大家的网络环境不是很好,这边推荐一个便宜大碗的机场
三毛机场:https://b.smjcgw.com/#/register?code=DhvTqqgN
Node.js 安装
.png)
Node.js 是 Hexo 的运行基础,没有它,后面的 npm 和 hexo 命令都无法正常工作。
官方下载链接:https://nodejs.org/en
我之前留存的安装包(可能不是官网最新版):【点击下载】
教程视频:【Nodejs安装零基础教程2025】
如果你现在重新搭建,建议优先使用当前官方推荐的稳定版本,不必一定和我截图里的版本完全一致。
安装完成后,打开 CMD、PowerShell 或 Git Bash,分别输入:
1 | node -v |
1 | npm -v |
.png)
如果两条命令都能正常显示版本号,说明 Node.js 和 npm 已经成功加入环境变量。
如果出现“
node不是内部或外部命令”之类的提示,通常不是 Hexo 的问题,而是 Node.js 没装好或者环境变量没有生效。可以先尝试重开终端,仍然不行再重新安装 Node.js。
Git 安装
.png)
Git 后面会负责两件非常重要的事情:
- 从 GitHub 下载主题等项目;
- 将博客部署到 GitHub。
官方下载链接:https://git-scm.com/download/win
安装包(可能不是官网最新版):【点击下载】
视频教程:【在Windows上安装git】
安装完成后输入:
1 | git --version |
.png)
能够显示 Git 版本号,就说明安装正常。
GitHub 账号注册
.png)
GitHub 官方注册链接:https://github.com/signup
视频教程:【GitHub注册账号】
注册完成后建议先记住自己的:
- GitHub 用户名
- 注册邮箱
后面配置 Git 和 SSH Key 时都会用到。
Hexo 框架部署
现在基础工具都准备好了,终于可以正式开始搭博客了。
这里其实是整个流程里最有成就感的一段,因为只要顺利走完这几步,你很快就能在自己电脑上看到第一个完整的博客页面。
Hexo 安装
Step1:选择一个博客文件夹
先选择一个你喜欢的文件夹,作为以后存放博客源码、主题、配置文件以及博文的地方。
例如:
1 | D:\blog |
我个人比较推荐单独给博客建一个目录,不要和各种下载文件、课程作业混在一起。因为以后你的文章、主题配置、图片甚至自定义 CSS、JS 都可能逐渐堆进来,这个目录会陪你很久。
注意!
初始化时目标文件夹最好是空文件夹。
路径建议尽量不要出现中文、特殊符号以及过于复杂的目录层级。
虽然很多软件现在对中文路径兼容已经很好了,但一旦某个插件没处理好编码问题,排查起来真的很痛苦。
.png)
例如我就单独把博客文件存储在D:\hexo这个目录下,对于文件的查找和编辑都非常方便
Step2:安装 Hexo CLI
在博客文件夹内右键,打开 Git Bash。
.png)
输入:
1 | npm install -g hexo-cli |
这一步的意思是在电脑上全局安装 Hexo 的命令行工具。
.png)
安装结束后输入:
1 | hexo -v |
.png)
只要能看到 Hexo、Node.js 等版本信息,就说明 Hexo CLI 已经可以正常使用了。
如果这里就报错,不建议继续往下硬走,因为后面的命令都会依赖 Hexo。先把当前问题解决干净再继续。
Step3:初始化 Hexo
确认自己当前就在准备好的空文件夹中,然后输入:
1 | hexo init |
.png)
Hexo 会自动把博客需要的基础文件拉下来,并初始化项目结构。
正常情况下,完成后你会看到类似下面这些文件:
1 | blog/ |
这几个目录非常重要:
_config.yml:Hexo 整个站点最核心的配置文件;source/_posts/:以后写的文章基本都放在这里;themes/:主题文件夹;package.json:记录博客依赖的 npm 包;public/:执行生成命令以后出现,里面是最终生成出来的网站文件。
有些电脑在这一步可能会出现 GitHub 连接失败,例如
disconnect with github、connection reset或克隆失败。
首先还是建议检查网络和 Git 是否正常。
如果实在无法通过在线初始化,也可以使用我之前准备的文件: Hexo-files.zip
解压后,将文件复制到博客文件夹中,再执行一次npm install安装依赖。
Step4:第一次本地运行
输入:
1 | hexo g && hexo s |
这里其实是连续执行了两条命令:
hexo g:hexo generate的缩写,生成静态网页;hexo s:hexo server的缩写,开启本地预览服务器。
.png)
正常情况下,终端会出现:
1 | http://localhost:4000/ |
按住 Ctrl 点击网址,或者直接复制到浏览器地址栏。
.png)
如果你已经看到 Hexo 默认的 Landscape 页面,那么恭喜你——到这里,其实你已经真正拥有了一个可以运行的网站。
只不过现在这个网站还只能在你自己的电脑上访问。
这个时候可以先别急着往下走,稍微感受一下这个过程:几分钟前还是一个空文件夹,现在浏览器里已经出现了一个完整网页。虽然它还长得很“默认”,但后面所有的主题、美化、文章和功能,都是从这里慢慢长出来的。
预览结束后回到终端,按:
1 | Ctrl + C |
停止本地服务器。
部署到 GitHub Pages
现在博客只能通过 localhost:4000 在自己电脑上访问。
下一步我们要做的,就是把它真正放到互联网上。
这里使用 GitHub Pages。对于个人博客来说,它的优点很明显:免费、和 GitHub 仓库结合紧密,而且对于 Hexo 这种静态站点非常合适。
说明:Hexo 官方现在也提供 GitHub Actions 的部署方式。本文为了让第一次接触 Git/GitHub 的同学更容易理解,继续使用
hexo-deployer-git的一键部署方式。等你把整个流程跑通以后,再换 GitHub Actions 也完全来得及。
Step1:创建 GitHub Pages 仓库
打开 GitHub,点击 New repository。
.png)
.png)
仓库名称建议严格写成:
1 | 你的GitHub用户名.github.io |
例如你的用户名是:
1 | BaiYB |
那么仓库应该叫:
1 | BaiYB.github.io |
这个命名不是为了好看,而是 GitHub Pages 的用户站点规则。
Step2:配置 Git 身份信息
回到 Git Bash,分别输入:
1 | git config --global user.name 你的GitHub用户名 |
1 | git config --global user.email 你的GitHub邮箱 |
这两项可以理解为告诉 Git:以后是谁在使用这台电脑提交代码。
可以通过下面的命令检查:
1 | git config --global --list |
Step3:生成 SSH Key
输入:
1 | ssh-keygen -t rsa -C 你的GitHub邮箱 |
第一次搭建时,如果你不知道每个选项是什么意思,可以一路按回车使用默认配置。
默认情况下,公钥一般会生成在:
1 | C:\Users\你的用户名\.ssh\id_rsa.pub |
.png)
右键 id_rsa.pub,使用记事本打开,然后复制里面的全部内容。
.png)
注意:
id_rsa是私钥,不要随便发给别人。
我们需要复制到 GitHub 的是带.pub后缀的公钥。
Step4:把 SSH Key 添加到 GitHub
打开:
https://github.com/settings/ssh/new
把刚才复制的公钥粘贴进去。
Title 可以随便写一个方便自己识别的名字,例如:
1 | My Windows PC |
.png)
Step5:测试电脑与 GitHub 的通信
在 Git Bash 中输入:
1 | eval "$(ssh-agent -s)" |
然后:
1 | ssh-add ~/.ssh/id_rsa |
最后测试:
1 | ssh -T git@github.com |
第一次连接时可能会询问是否确认主机指纹,输入:
1 | yes |
如果最终出现类似“successfully authenticated”的提示,说明 SSH 这一层已经打通。
.png)
这里我很建议大家养成一个习惯:每配置完一层,就先测试这一层。
如果 SSH 测试都没有成功,就不要直接去执行 Hexo 部署。否则最后只会看到更长的一串报错,却不知道问题其实早就出在前面了。
Step6:配置 Hexo 的部署目标
打开博客根目录中的 _config.yml,找到 deploy 部分。
修改为:
1 | # Deployment |
例如:
1 | deploy: |
注意!YAML 对缩进非常敏感。
type、repo、branch前面的空格不要乱改,也不要使用 Tab 随便对齐。
如果_config.yml里本来已经存在deploy配置,建议直接修改原来的,不要在文件里重复写两个deploy:。
.png)
Step7:安装部署插件
输入:
1 | npm install hexo-deployer-git --save |
这个插件的作用就是让 Hexo 知道如何把生成出来的网站提交到 Git 仓库。
如果不安装,执行 hexo d 时很可能会提示没有找到 deployer。
Step8:第一次真正上传博客
输入:
1 | hexo clean && hexo generate && hexo deploy |
也可以使用缩写:
1 | hexo cl && hexo g && hexo d |
三条命令分别表示:
hexo clean:清理之前生成的缓存和public;hexo generate:重新生成网页;hexo deploy:部署到 GitHub。
如果看到类似:
1 | INFO Deploy done: git |
说明 Hexo 已经把站点部署到仓库。
接下来在 GitHub 仓库的 Settings -> Pages 中确认 GitHub Pages 已经启用,并选择你实际部署的分支。
随后访问:
1 | https://你的GitHub用户名.github.io |
第一次部署可能不会立刻生效,可以稍等几分钟再刷新。
当这个网址真的能被手机、其他电脑打开的时候,整个体验和本地 localhost 是完全不一样的。
因为从这一刻开始,它不再只是你电脑上的一个项目,而是互联网上真正存在的一个网站了。
Hexo 主题配置
默认的 Landscape 主题能用,但说实话,第一次搭博客的人大概率看不了多久就会产生一个想法:
“有没有好看一点的?”
有,而且非常多。
Hexo 官方主题列表:https://hexo.io/themes/
本文还是以本站使用的 Butterfly 为例。
一方面 Butterfly 本身功能比较完整,另一方面网上能找到的教程、魔改方案和现成案例都非常多。你以后想加首页大图、友链、音乐、评论、侧边栏、动态效果甚至自己写 CSS/JS,都有很大的发挥空间。
安装 Butterfly
在博客根目录打开 Git Bash,输入:
1 | git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly |
正常情况下,themes 文件夹里会多出一个:
1 | themes/butterfly |
.png)
如果这里出现 GitHub 连接超时,可以先检查网络。
也可以使用我之前保留的 Butterfly 压缩包:
Butterfly主题压缩包
解压到themes文件夹,并确保最终结构是themes/butterfly/,不要多套一层目录。
切换主题
打开博客根目录中的 _config.yml。
找到:
1 | theme: landscape |
修改为:
1 | theme: butterfly |
.png)
注意:YAML 中冒号后面的空格不要省略。
安装 Butterfly 所需渲染器
输入:
1 | npm install hexo-renderer-pug hexo-renderer-stylus --save |
如果缺少相关渲染器,主题很可能无法正常渲染页面。
重新本地预览
输入:
1 | hexo clean && hexo generate && hexo server |
然后再次访问:
1 | http://localhost:4000/ |

如果此时已经看到 Butterfly 的页面,那么主题切换就成功了。
注意,这条命令只是本地预览,并不会上传 GitHub。
确认一切正常后,如果需要更新线上网站,再执行:
1 | hexo clean && hexo generate && hexo deploy |
别急着结束:先认识一下你的博客目录
到这里,很多教程可能就会说“恭喜你,博客搭建完成”。
从技术上来说确实完成了,但如果你真的打算长期写博客,我建议先认识几个以后一定会反复碰到的文件。
_config.yml
这是 Hexo 的站点配置文件。
网站标题、作者、网址、语言、部署方式等很多全局配置都在这里。
以后只要看到教程说“修改站点配置”,大概率指的就是它。
themes/butterfly/
这里是 Butterfly 主题本体。
里面包含页面结构、主题样式、默认配置等内容。
如果以后准备深度魔改,建议先备份,最好顺手使用 Git 管理自己的修改。因为改着改着真的很容易出现:
“我刚才到底改了哪一行?”
source/_posts/
这是以后最常见的目录。
你的 Markdown 博文基本都会放在这里。
所以从某种意义上来说,这才是博客真正最重要的地方——主题可以换,服务器可以换,域名也可以换,但文章才是长期留下来的东西。
写下第一篇属于自己的文章
如果一直只是装主题,那博客永远还是“别人的主题演示站”。
真正开始属于你自己的时刻,是你写下第一篇文章以后。
输入:
1 | hexo new "我的第一篇博客" |
Hexo 会在:
1 | source/_posts/ |
下自动创建一个 Markdown 文件。
文章开头通常会有类似:
1 |
|
这部分叫做 Front-matter,相当于这篇文章的基本信息。
例如可以写成:
1 |
|
然后在下面正常使用 Markdown 写内容即可。
写完后:
1 | hexo clean && hexo generate && hexo server |
先本地确认没有问题,再:
1 | hexo deploy |
我非常推荐养成先本地看一遍,再上传的习惯。
尤其以后文章里图片、HTML、CSS 和各种标签插件越来越多时,直接上传以后才发现页面炸了,会比本地提前发现麻烦得多。
一组以后会反复使用的命令
等真正开始写博客以后,其实日常用得最多的命令并不多。
新建文章
1 | hexo new "文章标题" |
清理缓存
1 | hexo clean |
生成静态网页
1 | hexo generate |
本地预览
1 | hexo server |
上传线上
1 | hexo deploy |
我最常用的组合
本地检查:
1 | hexo cl && hexo g && hexo s |
更新线上:
1 | hexo cl && hexo g && hexo d |
其实用久以后,你会发现 Hexo 日常维护真的没有想象中那么复杂。
Hexoの编辑器
兄弟兄弟,用vscode写博客,还要手动输入发送命令还是太吃操作了,有没有简单易上手的打法
有的兄弟有的,这时候就要推荐本人暑假偷偷开发的Hexo编辑器了(doge.png)
简洁的页面,流畅的体验,还有文章同步等功能,在不同设备上都可以随时随地写博客!
项目主页:https://github.com/Bai-YB/hexo-lite-editor
帮主播点点star,助力做大做强
常见问题与排查思路
这一部分是我认为比“正常流程”更重要的内容。
因为正常情况下所有人跟着教程都能走,但真正卡住人的往往是那些教程截图里从来没有出现过的报错。
1. hexo 不是内部或外部命令
先检查:
1 | node -v |
如果 Node 和 npm 正常,再尝试:
1 | npm install -g hexo-cli |
安装后关闭终端重新打开,再执行:
1 | hexo -v |
如果仍然不行,大概率需要检查 npm 全局安装路径是否加入环境变量。
2. hexo init 卡住或 GitHub 克隆失败
如果看到:
1 | Failed to connect |
先不要怀疑 Hexo。
打开浏览器检查:
1 | https://github.com |
再执行:
1 | git --version |
很多初始化失败,本质上只是 Git 无法正常访问 GitHub。
3. npm install 报错
这里最重要的是不要只截图最后一行。
npm 报错往往会在上面给出真正原因。
建议完整复制从:
1 | npm ERR! |
开始的相关内容,再交给搜索引擎或 AI 分析。
如果项目中的依赖已经乱掉,可以尝试先备份,然后重新安装:
1 | npm install |
不要一遇到 npm 报错就上来执行一堆网上不知道年份的“万能修复命令”,有时候反而会把环境改得更乱。
4. ssh -T git@github.com 失败
依次检查:
.ssh目录下是否真的存在私钥和.pub公钥;- GitHub 中添加的是否是
.pub文件内容; ssh-agent是否启动;- 私钥是否执行过
ssh-add; - 当前网络是否允许连接 GitHub SSH。
SSH 这一层不通,Hexo 部署当然也不会通。
5. 部署成功,但网页还是旧内容
先:
1 | hexo clean |
再重新:
1 | hexo g && hexo d |
然后等待 GitHub Pages 完成更新。
浏览器端也可以尝试:
1 | Ctrl + F5 |
进行强制刷新。
如果还是不对,再去 GitHub 仓库里看提交时间是否更新。
这样可以判断到底是:
- Hexo 根本没有部署成功;
- GitHub Pages 还没更新;
- 还是单纯浏览器缓存。
6. 修改 Butterfly 配置后没有变化
先确认自己改的是哪个 _config.yml。
Hexo 博客里经常会同时出现多个配置文件,最容易发生的事情就是:
改了半天,结果改错文件了。
另外,每次改完主题配置后建议:
1 | hexo clean && hexo g && hexo s |
避免旧缓存继续影响页面。
7. 图片本地正常,部署后裂了
这是非常常见的问题。
Windows 本地文件路径:
1 | C:\Users\xxx\Pictures\1.png |
对互联网上的网页没有任何意义。
网站上的图片最终必须能够通过 URL 或站点资源路径被浏览器访问。
比较常见的方案有:
- 放到 Hexo 的
source目录中; - 使用图床;
- 使用文章资源文件夹;
- 使用对象存储等外部资源服务。
这也是我自己早期折腾博客时踩过比较久的一个坑。刚开始会觉得“图片明明就在我电脑里,为什么网页找不到”,等真正理解 Hexo 构建后的目录和浏览器访问路径之后,就会突然发现这件事其实很合理。
从“搭出来”到“真正属于自己”
到这里,教程最基础的目标已经完成了。
但如果你去看那些真正做了很多年的个人博客,会发现搭建 Hexo 其实只是第一步。
后面才是最容易让人上头的部分。
你可以开始一点点修改:
- 网站头像、图标、背景图;
- 首页顶部大图;
- 导航栏;
- 文章封面;
- 侧边栏;
- 页脚;
- 友链页面;
- 评论系统;
- 音乐播放器;
- 自定义字体;
- CSS 动画;
- JavaScript 交互;
- AI 搜索;
- 访问统计;
- 自定义域名;
- 国内访问优化;
- 性能优化;
- 自己开发真正属于这个站点的小功能。
一开始我也只是觉得“把默认主题换掉就差不多了”。
但真正看到别人博客里那些非常自然的交互、动态效果和属于站长自己的细节以后,就很容易产生一种非常危险的想法:
“这个好像也不是不能自己做。”
然后打开开发者工具,开始看 HTML;看完 HTML 又开始改 CSS;改着改着发现还得写 JS;再往后就开始研究部署、缓存、CDN、域名……
博客就是这样一点点把人拖进坑里的。
但我觉得这是一个很值得掉进去的坑。
XBXyftx 的博客就是一个很典型的例子。他并不是停留在“装完 Butterfly”这一层,而是不断记录自己对博客的修改:从页面交互、Butterfly 效果,到国内访问、部署方案,再到后面持续做性能优化。看他的博客时,我最大的感受其实不是“这个功能真炫”,而是一个个人网站真的可以随着站长自己的学习不断生长。
这也是我现在更愿意把博客理解成“长期项目”,而不是一次课程作业的原因。
关于 AI:别让它替你复制命令,让它帮你理解问题
现在搭博客和以前最大的区别之一,可能就是我们有 AI 了。
以前遇到一个报错,常见流程是:
1 | 复制报错 -> 百度/CSDN -> 打开十几个页面 -> 一个个试 |
现在可以先把问题交给 AI 分析。
但我非常不推荐这种问法:
1 | Hexo报错了怎么办? |
这基本等于没提供信息。
更好的方式是:
1 | 我正在 Windows 11 上搭建 Hexo。 |
你会发现回答质量完全不是一个级别。
AI 最有用的地方,不是代替你无脑复制命令,而是帮你快速梳理:
现在已经知道什么、缺什么信息、下一步最应该验证什么。
这其实也是以后做项目、排查服务器问题甚至写代码时非常重要的一种能力。
后续可以继续折腾什么
如果基础博客已经跑通,我建议不要一次把所有东西都装上。
先写几篇文章,慢慢熟悉结构,再逐步增加功能。
可以按照这个顺序继续:
第一阶段:先让博客真正“像你”
- 修改站点标题、头像、简介;
- 修改主题色;
- 修改首页大图;
- 配置菜单;
- 做一个关于页;
- 加入自己的社交链接。
第二阶段:让博客更好用
- 搜索;
- 文章目录;
- 代码复制按钮;
- 评论;
- 友链;
- RSS;
- 文章更新时间;
- 图片懒加载。
第三阶段:开始真正折腾
- 自定义 CSS;
- 自定义 JavaScript;
- 首页卡片样式;
- 动态背景;
- 打字机效果;
- 自定义弹窗;
- 自己写小组件;
- 接入 API;
- AI 搜索 / Agent;
- 性能优化;
- 自定义域名和访问加速。
到这一步以后,其实已经很难说你是在“搭博客”还是在“做一个网站项目”了。
而这往往才是最好玩的地方。
结语
最开始写这篇教程的时候,它对我来说更多是一份小学期开源实践的记录。
但后来重新整理这篇文章时,我越来越觉得,搭建一个博客本身其实没有多难。
真正有意思的,是搭好以后发生的事情。
你会因为想改一个按钮第一次认真去看 CSS;会因为图片加载不出来第一次理解网页路径;会因为 GitHub 连接失败去研究 SSH;会因为访问速度不理想开始接触域名、DNS、CDN;也可能只是因为某天突然想记录一点什么,于是认真坐下来,把自己这一段时间的经历写成一篇文章。
这些事情单独拿出来看可能都很小。
但时间拉长以后,它们会一点点堆在一起。
几年之后再打开自己的博客,你看到的可能早就不只是几十篇文章,而是一条非常清楚的成长轨迹:自己曾经对什么感兴趣、遇到过什么问题、做过哪些项目、认识了哪些人、又在什么时候突然改变了想法。
我很喜欢个人博客的一点就是,它可以保留我们成长的轨迹。
实践虽小,内涵极大。
博客当然只是一个起点。
但未来每一次写下的文字、每一次解决掉的报错、每一个折腾出来的小功能,都会被它老老实实地记录下来。
等某一天再回头看时,也许你会发现:
原来自己真的已经走了很远。




