我是基于ChatGPT-turbo-3.5实现的AI助手,在此网站上负责整理和概括文章

本文介绍了使用 Hexo 搭建个人博客的完整流程,重点阐述了环境配置、主题选择与部署方案。首先通过 Node.js 和 Scoop 安装 Hexo 环境,并配置 SSH 公钥实现 GitHub 仓库的代码同步。随后初始化 Hexo 项目,推荐了 Volantis、Butterfly 和 Stellar 等流行主题,并详细说明了主题切换与配置方法。部署方面,提供了手动部署到 GitHub Pages 的步骤,同时展示了如何通过 GitHub Actions 实现自动化部署,解决了依赖本地环境的问题。此外,文章还对比了 GitHub Pages 与 Vercel 的性能差异,详细介绍了 Vercel 的全球 CDN 优化和域名解析配置,确保国内用户访问体验。整个过程技术详实,操作性强,适合希望快速搭建高性能博客的开发者参考。

# 环境准备

# Nodejs安装

  • 安装 Node 和 hexo , 我是在 Windows 采用 Scoop 进行环境管理。具体可以在博客中搜索了解

    scoop install nvm
    nvm install --lts; nvm use --lts
    npm install -g yarn 
    yarn global add hexo-cli

# 新建Github仓库

  • Github 新建一个私有的仓库 blog_hexo

# 配置 SSH

  • 查看 Github 中 repo 的地址

    image-20250623164831377

  • 复制公钥内容 ~/.ssh/id_ed25519.pub, GitHub 设置 → SSH and GPG keys → New SSH Key → 粘贴并保存。

    # 生成并配置 SSH 密钥 (默认路径 ~/.ssh/id_ed25519 或 ~/.ssh/id_rsa)
    ssh-keygen -t ed25519 -C "[email protected]"  # 推荐 Ed25519
    # 或
    ssh-keygen -t rsa -b 4096 -C "[email protected]"  # 兼容性更好
    
    ssh -T [email protected]  # 测试连接
    Hi XXXX! You've successfully authenticated, but GitHub does not provide shell access.
    
  • 使用 Git 工具 clone 项目到本地, SSH 方式需要在 Github 中配置 SSH 公钥, 具体百度 ssh-keygen

    git clone [email protected]:fulsun/blog_hexo.git  blog-hexo
    # 使用 vscode 打开目录
    code  blog-hexo

# 初始化Hexo项目

  • 进入项目后,打开终端 ,初始化 hexo , 使用 Yarn 安装依赖

    # 而 hexo init 要求目标目录必须为空
    mkdir ./hexo-temp ; cd ../hexo-temp
    hexo init
    # 复制 Hexo 初始化内容 配置
    Copy-Item * ..\blog-hexo\ -Recurse
    cd ..\blog-hexo
    del hexo-temp
    yarn install
  • 使用 hexo s 预览, 访问 http://localhost: 4000/ 看到如下页面表示正常。

    PS C:\Users\fulsun\Desktop\blog-hexo> hexo s
    INFO  Validating config
    INFO  Start processing
    INFO  Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.

# Hexo主题设置

# Github Page 部署

# 配置 GitHub 仓库

  • 访问 GitHub 新建仓库,命名格式:

    • <username>.github.io(个人主页,如 yourname.github.io

    • 或任意名称(项目站点,如 my-blog,访问地址为 yourname.github.io/my-blog

# 手动部署

  • 安装 Git 部署插件

    # 安装 Git 部署插件
    npm install hexo-deployer-git --save
  • 配置 GitHub 仓库

    deploy:
      type: git
      repo: [email protected]:fulsun/-my-blog.git  # 替换为你的仓库地址
      branch: main  # 或 gh-pages(如果使用项目站点)
      message: "Deploy Hexo: <!--swig0-->"  # 可选:自定义提交信息
  • 生成静态文件并部署

    hexo clean && hexo generate  # 或简写 hexo g
    hexo deploy  # 或简写 hexo d

# 启用 Github page 服务

  1. 进入仓库设置: 访问你的仓库 → 点击 Settings → 左侧菜单选择 Pages

  2. 配置发布源

    • Branch:选择包含静态文件的分支(如 maingh-pagesdocs 文件夹所在分支)。
    • Folder:选择根目录 / 或特定文件夹(如 /public/docs)。
  3. 保存并生效

    • 点击 Save,稍等 1-2 分钟,页面顶部会显示绿色提示框:
      Your site is published at https://<username>.github.io/<repo>/

  4. 访问发现样式丢失,这里是因为我不是采用 fulsun.github.io 命名,导致路径不匹配,可以通过调整配置

    #  Hexo 主目录的 _config.yml
    # 将默认的根路径改为子路径
    url: https://fulsun.github.io/my-blog  # 注意:末尾不要加斜杠!
    root: /my-blog/  # 注意:开头和结尾都要有斜杠!

  5. 指定域名方式调整

    image-20250623185350380

  6. 添加 CNAME 记录

    DNS 添加记录 类型 CNAME,名称 @,目标 fulsun.github.io(GitHub 强制要求),代理状态(橙色云图标)✅

  7. 再次访问 https://fulsun.dpdns.org/ , 发现正常了

# GitHub Actions 自动部署

手动部署 Hexo 博客到 GitHub 虽然简单直接,但是强依赖本地环境,通过自动部署则能狗一键触发,减少操作,提高效率。这里基于 GitHub Actions 自动部署

  • 在项目中创建 .github/workflows/deploy.yml

    name: Deploy to Public Repo
    
    on:
      push:
        branches: [ "main" ]
    
    env:
      PUBLIC_REPO: "my-blog"       # 公开仓库名称
      TARGET_BRANCH: "gh-pages"    # 目标分支
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          # 步骤1:检出私有仓库代码
          - name: Checkout Private Repo
            uses: actions/checkout@v4
    
          # 步骤2:安装 Hexo 和生成静态文件
          - name: Setup Node.js
            uses: actions/setup-node@v4
            with:
              node-version: "20.x"
    
          - name: Install and Build
            run: |
              npm install -g hexo-cli
              npm install
              hexo clean && hexo generate
    
          # 步骤3:推送到公开仓库
          - name: Push to Public Repo
            env:
              GH_TOKEN: $<!--swig1-->  # 使用 Token 认证
            run: |
              cd ./public
              git init
              git add .
              git config user.name "GitHub Actions"
              git config user.email "[email protected]"
              git commit -m "Deploy: $<!--swig2-->"
              git push --force \
                "https://$<!--swig3-->:$<!--swig4-->@github.com/$<!--swig5-->/$<!--swig6-->.git" \
                HEAD:$<!--swig7-->

# 密钥配置

  1. 在公开仓库 my-blog 中生成 Token

    • 进入 GitHub → Settings → Developer Settings → Personal Access Tokens (PAT)

    • 指定仓库

    • 权限设置

      权限分类 具体权限 理由
      Repository permissionsContents Read and write 允许推送静态文件到 my-blog 仓库的 gh-pages 分支
      Repository permissionsMetadata Read-only 获取仓库基本信息(必选,但对安全无影响)

    • 点击生成

    • 复制生成的 Token(稍后使用)

  2. 在私有仓库 blog-hexo 中添加 Secret

    • 进入 blog-hexoSettings → Secrets → New repository secret

    • 添加以下 Secret:MY_BLOG_REPO_TOKEN

  3. 此时我们将脚本推送到 Gihtub

    git add .
    git commit -m "添加自动部署脚本"
    git push origin 
  4. 访问 Github Action

  5. 查看 my-blog 仓库, 发现 hexo g 生产的静态文件已经被部署了

# Vercel 自动部署

# Vercel 部署

  1. 登录 Vercel (支持 GitHub 登录)

  2. 选择仓库,点击导入

    image-20250623192614824

  3. Vercel 自动识别了这个仓库是一个 Hexo 项目,直接点击 Deploy 按钮部署。

    image-20250623192749054

    ·

  4. 成功部署后的页面如下,点击 Go to Dashboard,即可前往该项目的控制面板。

  5. Domains 下的链接即为博客的访问链接,左边为该网站的预览图片

  6. 点击访问

# 解析域名至 Vercel

  • 如果使用 vercel 部署, 这里我们可以删除 Github 上的 my-blog 仓库了

  • 点击 Vercel 项目中的 Settings → Domains → Add,将你的域名解析至 Vercel 部署的网页上。

  • 输入你的域名(可以是二级域名)后点击 Add 按钮,即可绑定域名至该项目.

  • 检查结果

  • 进入 CF 配置 DNS ,这里我们从下面选择进行指定 CNAME 解析地址

  • 再次 refresh 查看发现域名已配置成功

  • 访问自定义的域名后,可成功访问,证明部署成功了。

更新于

请我喝[茶]~( ̄▽ ̄)~*

Fulsun 微信支付

微信支付

Fulsun 支付宝

支付宝