在将 Hexo 博客推送到 GitHub Pages 并使用自定义域名的过程中,常常会遇到更新后域名失效的问题。本文将详细介绍如何将Hexo 博客推送到 GitHub Pages,并解决这一问题,保持域名的持续有效。


🌿 创建 GitHub 仓库

  1. 创建仓库
    在 GitHub 主页的 repositories 中,新建一个名为 <你的GitHub用户名>.github.io 的仓库。直接创建即可,无需额外配置。

  2. 生成访问令牌
    前往 GitHub 设置页面,在 Personal access tokens 下创建一个新的 token。选择 Fine-grained tokens,点击 Generate new token。输入 token 名称(如“个人 Hexo 博客”),设置过期时间。

  3. 配置权限

    • 在 Repository access 下选择 Only select repositories,并选择刚刚创建的仓库。

    • 在 Permissions 的 Repository permissions 中打开所需权限(建议全开),然后生成 token 并保存。


🌿 配置 Hexo 部署

打开 Hexo 项目的 _config.yml 文件,找到 deploy 部分,配置如下:

1
2
3
4
deploy:
type: git
repo: https://<你的GitHub用户名>:<生成的token>@github.com/<你的GitHub用户名>/<你的GitHub用户名>.github.io.git
branch: main

保存配置后,执行以下命令推送到 GitHub:

1
hexo clean && hexo g -d

🌿 自定义域名设置

  1. 配置 DNS
    使用 Cloudflare 等 DNS 服务商,将你的子域名通过 CNAME 解析到 <你的GitHub用户名>.github.io

  2. GitHub Pages 设置
    在 GitHub 仓库的设置中,找到 Pages 部分,在自定义域名字段中输入你的域名并保存。GitHub 会自动开启 HTTPS。

    dns配置没问题的话,过一会就会成功。


🌿 持久化解决方案

每次更新后自定义域名失效,是因为 GitHub Pages 的域名解析依赖于仓库中的一个 CNAME 文件,更新后文件被覆盖而消失。

解决方案:

在 Hexo 项目的根目录下的 source 文件夹中,创建一个名为 CNAME 的文件,并在文件中输入Github上CNAME文件里的内容。这样,CNAME 文件会在每次生成静态文件时被包含在内,确保域名解析不会失效。


总结

通过上述步骤,你可以成功将 Hexo 博客部署到 GitHub Pages,并使用自定义域名。配置完成后,域名解析将保持稳定,不再因更新而失效。愿此指南能为你提供帮助,静候佳音。