按理说Hexo + Github Pages搭建博客教程一搜一大把那为啥我还要额外再写一篇呢?

教程虽然很多,但是我还是踩了不少的坑花了不少时间,因此记录一下希望能够帮助到大家。

前置内容

Git,Node.js等相关的基础内容本文碍于篇幅会尽可能的简述或忽略。

同样的本文不会过多侧重于细节,更多的是一个体系化教程,也就是说搭建一个博客需要哪些工具,他们的用途是什么以及为什么要使用
因此你完全可以根据需求按需选择工具使用,而非一股脑的全用上。

Git、Node.js

Hexo是一个基于Node的博客框架,因此在使用Hexo搭建博客前你应当具有一定的Node基础,当然,也可以无基础,问AI也可以,毕竟Node.js的生态还是非常成熟的。
因此这里不再复述Node.js的安装等等基本知识,这些AI回答的会更好。

Hexo搭建与初始化

Hexo这块主要跟着官方文档开始使用部分走一遍即可,剩下的按需查阅。文档里会告诉你Hexo的一直前置依赖如Git,Node.js等等。

推荐直接安装最新的Hexo版本,目前较多的其他教程由于所使用的Theme或者部分依赖没有及时更新,固定了Hexo版本,同样的Node.js也推荐安装最新版本。

Node.js与Hexo的安装问题理论上可以完全依靠搜索引擎或者AI解决,因为绝大部分都是配置、环境问题导致,因此遇到问题后推荐仔细检查一下操作步骤与文档是否完全匹配或一致。

在完成Git、Node.js与Hexo配置后,按照Hexo文档所说执行以下命令。Hexo 将会在指定文件夹中新建所需要的文件。

1
2
3
hexo init <folder>
cd <folder>
npm install

初始化后,您的项目文件夹将如下所示:

1
2
3
4
5
6
7
8
9
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
_config.yml

详细的内容可见Hexo-建站,后续继续按照Hexo文档操作新建一个.md博客文件,最终你应该会执行到以下命令完成构建:

1
2
3
4
5
6
//生成静态文件。
hexo g(generate)
//部署网站
hexo d(deploy)
//启动服务器
hexo s(server)

通常来说,本地调试使用hexo g && hexo s即可,此命名会生成静态文件并启动服务器(其中必要时可前置执行hexo clean清除缓存)。

Github Pages

下面重点来说下hexo d部署网站这部分,部署有两种方式:

  1. 源文件以及生成文件都上传到<username>.github.io仓库。
    该方式比较简单但是有个弊端,Github Pages对于普通用户要求必须为public的仓库,也就是说同时公开源文件与生成文件。
  2. 源文件可选上传到private仓库,仅将生成文件上传到<username>.github.io仓库
    该方式的好处在于分离了源文件与生成文件,同时源文件可上传为私有仓库。

推荐采用第2种方式,所有我们可以创建2个仓库:

  • private仓库,名称随意,
  • public仓库,名字严格要求为`.github.io`(替换为你的用户名)

public仓库可在仓库的Settings->Pages中完成相关设置,比如指定部署的分支名以及静态文件目录。
Github Pages设置
忽略上图的域名相关的设置,这部分后面再说。图中设置将main分支作为默认的构建部署分支,同时开始Github Pages自带提供的HTTPS。

然后参阅文档Hexo-一键部署,按文档Git目录下的说明安装hexo-deployer-git完成Git配置。
在你完成Hexo的一键部署配置Git后,执行hexo d可能会发现Github鉴权相关的报错,这会是预期内的,按照报错内容搜索解决。

hexo d正确执行完成后,在你的<username>.github.io仓库就可以看到构建好的静态网页,然后打开https://<username>.github.io即可访问你的网站啦。

以上内容是Hexo博客所必须的部分,因此推荐尽可能的阅读一遍Hexo官方文档,可以解决绝大部分问题。
以下内容都是可选项,可以根据实际场景需要来配置。

Hexo主题相关配置(可选)

Hexo提供了丰富的主题,其安装方式大同小异也比较简单,这里就不过多介绍。

当前博客使用的时Stellar主题,具体可见Stellar

自定义域名(可选)

由于Github域名已被墙,因此<username>.github.io域名国内是无法访问的,所以我们可以通过自定义域名来解决这个问题。
当然域名除此之外还有其他功能,比如统一图床链接等等。

购买域名

域名购买推荐使用Namesilo,性价比都比较高,且支持支付宝支付。当然你也可以搜索域名比价工具选择更便宜的(最后你会发现还是Namesilo最便宜

注:购买前可以搜下Namesilo优惠码,通常会有1美元的折扣

Cloudflare接管域名(可选)

Cloudflare算是一个额外附加的收益(感谢赛博菩萨),通过Cloudflare接管域名可以享受其全球CDN加速,当然国内减速也不是瞎说的,除此之外还可以免费提供SSL证书等。

注册Cloudflare非常简单,且其免费版并不需要登记信用卡(除R2对象存储外)

设置自定义域名

在你完成购买域名以及Cloudflare接管你的域名后,便可以在Github Pages上设置你的自定义域名了!

Github 验证域名(Verified domains)

入口为Profile -> Settings -> Pages -> Add a domain
添加域名
按照对应的说明操作即可,如果你使用了Cloudflare接管域名,那你需要在Cloudflare中设置DNS记录而非在购买域名的网站中设置。
当你成功设置完成后可能需要等待一段实际验证,最终显示图中Verified标签时即代表验证成功。

Github Pages 设置域名

再回到一开始的Github Pages设置截图:
Github Pages设置
在Custom domain部分按照其中的文档配置 GitHub Pages 站点的自定义域说明进行自定义域名的配置。

通常来说配置文档所说的apex域即可,不过本博客配置的时子域名:blog.lowae.link。两者无任何差别只是配置参数的区分。按文档内容总结下配置项:

  1. 4条A记录或者AAAA记录
  2. 一条指定<username>.github.ioCNAME记录
    配置完成后,再次回到Github Pages设置重新触发DNS 检查,如果显示成功了可以尝试开启Enforce HTTPS以获得更高的安全性。

如果你使用了Cloudflare托管域名,需要一些额外的配置工作:

  1. 配置CNAME时记得先关闭Cloudflare的代理,不然你会发现一致无法访问。
    代理
  2. SSL/TLS设置->概述中设置加密模式为完全,因为前面提到的Github Pages的Enforce HTTPS选项本身会提供SSL证书。
    加密模式
  3. 开启始终使用HTTPS:
    始终使用HTTPS
    在完成以上配置后,重新回到Github Pages触发DNS检查,完成配置。
    然后你便可以使用你的自定义域名访问部署的Hexo网站了。

本站由 Lowae 使用 Stellar 1.29.1 主题创建。
Copyright © 2024-2024 Lowae 保留所有权利。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
|