Hexo博客搭建

随着前置技术的博客逐步写完并发布,今天终于来到正餐——Hexo博客搭建。先简单介绍一下Hexo,Hexo是一个基于Node.js的静态博客框架,它可以将Markdown文件转换为静态HTML文件,并且可以部署到GitHub Pages、Coding Pages等平台上。我之所以选择Hexo,是因为他是一个非常经典的博客框架,有着完整的官方文档和广泛的社区支持,同时有着丰富的主题和大量的插件,最后Hexo的使用也非常简单,基于这些理由,我选择Hexo作为我的博客框架。

软件安装

  • Git:版本控制软件,用于管理博客的版本。
  • Node.js:JavaScript运行环境,用于运行Hexo。
  • Hexo:博客框架,用于将Markdown文件转换为静态HTML文件。

创建Git仓库

按照我的仓库体系创建blog仓库(我的博客仓库名),我的仓库体系详细内容请看我的Git这篇博客。

初始化Hexo项目

在本地克隆的blog文件夹中执行下面命令:

1
npx hexo init

静态页面的部署

在我的旧博客转写出来前,我的博客的部署全权交给了帽子云,当我开始使用GitHub Pages加帽子云是出现了一些小问题,这部分将会讲述帽子云的部署和GitHub Pages的部署,以及那些问题产生的原因和解决方案。

使用帽子云部署静态页面

我之所以选择帽子云,是因为他有免费的静态网站托管服务,同时国内也可以快速访问。

注册帽子云,进入帽子云控制台,选择应用管理,点击创建应用,选择静态网站。

帽子云控制台

输入应用名称(应用名称同时也是域名的一部分),选择GitHub代码仓库(这个需要授权,我将博客仓库blog的访问权限授予了帽子云),编写构建设置,点击创建。

帽子云创建静态网站

构建命令

1
npm run build

输出目录

1
public

等待部署完成后就可以通过域名访问了。

帽子云部署界面

当GitHub仓库内容发生改变时,帽子云就会自动重新部署。

至此,博客的创建、部署和访问就完成了。

使用GitHub Pages部署静态页面

GitHub Pages是GitHub提供的免费静态网站托管服务,它可以将GitHub仓库中的内容部署为静态网站,支持HTML、CSS、JavaScript等静态文件,不支持动态文件(如PHP、Python等)。

将GitHub仓库改名为username.github.io,username为我的GitHub用户名,将仓库设置为公开,然后按照Hexo官方文档中GitHub Pages的要求进行部署,GitHub Pages的部署一切顺利。

问题出现

但我还是想保留帽子云,因为帽子云可以国内访问。于是我找到了帽子云的另一个功能——反向代理。

反向代理页面

反向代理的配置这么填写

反向代理配置图

填写完后,保存,等待反向代理配置生效,就可以通过帽子云的域名访问GitHub Pages博客了。

但我认为配置了反向代理就不需要帽子云的部署功能了,因此我关闭了帽子云的GitHub授权,只保留反向代理的功能,这里出现了问题。

当我发布一篇新文章是,帽子云的域名找不到那篇新文章,我修改了workflows添加了hexo clean命令也不管用,之后我又尝试直接访问wliafe.github.io,没想到竟然没有问题,这完全排除了GitHub Pages的问题。于是我猜想帽子云反向代理应该是有缓存,每次部署都会更新缓存,我尝试将帽子云部署重新配置,发现问题解决了。

帽子云新问题

2025年7月15日,可能是我上传的博客数量太多,也可能是其他原因,帽子云无法使用了。无论是否使用代理,页面都加载失败。没有办法,只能用代理直接访问GitHub Pages域名了。

在更新博客后帽子云又恢复了,非常奇怪。

修改Hexo配置文件

关于Hexo配置文件的修改,我的建议是完整阅读Hexo的官方文档,了解配置文件的各个参数的意思和作用,在使用中逐步熟悉Hexo,不断修改配置文件,以满足自己的需求。

创建并发布我的第一篇文章

创建博客

在本地博客项目目录中执行下面的命令:

1
npx hexo new -p <文件路径> <文章名>

例如

1
npx hexo new -p 博客/我的第一篇文章 我的第一篇文章

该命令会在source/_posts/博客目录下创建一篇Markdown文件,文件名即为文章标题。

本地查看博客

本地查看博客运行效果

1
npm run server

发布博客

我的博客发布并不需要hexo命令,只需要更新仓库即可。