Astro + GitHub Pages + Vercel + 腾讯云域名 博客部署全指南
搭建个人博客的核心需求,无非是「简单易维护、免费部署、自定义域名」。本文整合 Astro 博客初始化、GitHub Pages 自动化部署、Vercel 平台部署、腾讯云域名绑定全流程,全程脱敏无个人信息,新手可直接照着操作,零技术门槛也能快速上线属于自己的个人博客。
适用场景:想通过 Astro 搭建轻量博客,利用 GitHub Pages 免费托管源码,通过 Vercel 平台加速全球访问,同时绑定自己在腾讯云的自定义域名,实现从开发到上线的一站式落地。
开始操作前,先准备好以下基础环境和工具,避免操作中卡顿:
安装 Node.js(版本 ≥ 20),推荐搭配 pnpm(也可使用 npm/yarn),用于 Astro 项目的初始化和依赖管理。
拥有一个 GitHub 账号,用于创建仓库、存放博客代码和自动化部署。
拥有一个 Vercel 账号(支持 GitHub 登录),用于托管博客并提供全球 CDN 加速。
已完成实名认证的腾讯云域名(未实名无法进行 DNS 解析,无法绑定生效)。
Astro 是一款轻量、高性能的静态站点生成器,特别适合搭建博客,自带博客模板,无需从零开发。
打开电脑终端(Windows 用 PowerShell/CMD,Mac/Linux 用终端),依次执行以下命令,一键初始化博客模板:
# 1. 创建 Astro 博客项目(my-astro-blog 可自定义项目名称)pnpm create astro@latest my-astro-blog -- --template blog
# 2. 进入项目目录cd my-astro-blog
# 3. 安装项目依赖pnpm install
# 4. 本地预览(可选,启动后访问 http://localhost:4321 查看效果)pnpm dev执行完成后,本地就能看到 Astro 默认的博客模板,后续可按需修改主题、添加文章。
这是 Astro 项目的核心配置文件,直接影响后续部署后的访问效果,重点配置「site」参数:
import { defineConfig } from 'astro/config';
export default defineConfig({ site: 'https://你的自定义域名',});注意:此处无需添加 base 配置,仅保留 site 即可,否则会导致部署后静态资源加载失败。
利用 GitHub Pages 免费部署博客,需要创建一个专属仓库,将本地 Astro 项目推送到 GitHub 远程仓库。
登录 GitHub,点击右上角「New repository」,按以下配置创建仓库:
# 1. 初始化 Git 仓库git init
# 2. 将主分支重命名为 maingit branch -M main
# 3. 关联 GitHub 仓库git remote add origin https://github.com/用户名/用户名.github.io.git
# 4. 提交所有代码git add .git commit -m "init: 初始化 Astro 博客项目"
# 5. 推送到 GitHub 远程仓库git push -u origin main配置 GitHub Actions 后,后续每次推送代码,都会自动触发构建和部署,无需手动操作。
在 Astro 项目根目录,新建文件夹「.github/workflows」,然后在该文件夹下新建文件「deploy.yml」:
name: Deploy Astro Blog to GitHub Pages
on: push: branches: [ main ] workflow_dispatch:
permissions: contents: read pages: write id-token: write
jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4
- name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: 'pnpm'
- name: Install dependencies run: pnpm install
- name: Build Astro site run: pnpm run build
- name: Upload build artifacts uses: actions/upload-pages-artifact@v3 with: path: ./dist
deploy: needs: build runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4git add .github/workflows/deploy.ymlgit commit -m "ci: 添加 GitHub Actions 自动化部署工作流"git push origin main推送完成后,进入 GitHub 仓库,点击顶部「Actions」,可看到正在执行的部署工作流。
Vercel 是一个专注于前端项目的部署平台,提供免费的全球 CDN 加速、无缝集成 GitHub、自动配置 HTTPS,是托管 Astro 博客的理想选择。
在项目配置页面,进行以下设置:
/)npm run build(若使用 pnpm 则为 pnpm run build)dist重要:为了避免 Vercel 误检测框架(有时会误判为 Next.js),建议在项目根目录创建 vercel.json 配置文件,明确指定框架为 Astro。
在 Astro 项目根目录,新建文件 vercel.json,内容如下:
{ "buildCommand": "npm run build", "outputDirectory": "dist", "framework": "astro", "installCommand": "npm install --legacy-peer-deps", "devCommand": "npm run dev"}如果使用 pnpm 作为包管理器,将 vercel.json 中的 npm 命令替换为 pnpm。
项目名.vercel.app 的预览域名blog.xxx.com)若域名添加失败,检查是否已在腾讯云完成域名实名认证,国内域名未实名无法使用。
如果你有多个域名指向同一博客,可以在 Vercel 中设置主域名:
部署成功后,我们将腾讯云的自定义域名绑定到 Vercel 平台,享受全球 CDN 加速访问。
登录腾讯云 DNS 解析 DNSPod 控制台,找到需要绑定的域名,点击「解析」进入解析记录页面。
需要添加 CNAME 记录指向 Vercel:
| 记录类型 | 主机记录 | 记录值 | TTL |
|---|---|---|---|
| CNAME | @ | cname.vercel-dns.com | 600 |
| CNAME | www | cname.vercel-dns.com | 600 |
仅需添加 1 条 CNAME 记录:
| 记录类型 | 主机记录 | 记录值 | TTL |
|---|---|---|---|
| CNAME | blog | cname.vercel-dns.com | 600 |
具体的 CNAME 值请在 Vercel 项目 Settings → Domains 页面查看,Vercel 会显示你域名对应的正确 CNAME 记录。
注意:若域名状态显示「Configuration Needed」,说明 DNS 记录还未生效,等待 10-30 分钟后刷新页面。
ipconfig /flushdnssudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder在浏览器中输入自定义域名,若能正常打开 Astro 博客,且地址栏有小锁图标(HTTPS 生效),说明所有配置都已成功。
原因是 astro.config.mjs 配置错误,添加了不必要的 base 配置。
解决方案:删除 base 配置,仅保留 site 为自定义域名,重新推送代码触发重新部署。
原因是权限不足或依赖安装失败。
解决方案:检查 deploy.yml 中的 permissions 配置是否完整(包含 pages: write),若使用 npm,将 workflow 中的 pnpm 替换为 npm。
原因是 Vercel 自动检测框架时出现误判,误认为项目是 Next.js 而非 Astro。
解决方案:
vercel.json 文件,明确指定框架为 Astro原因是构建命令或输出目录配置错误。
解决方案:检查 Vercel 项目 Settings 中的 Build Command(应为 npm run build 或 pnpm run build)和 Output Directory(应为 dist)。
原因是 DNS 解析记录错误或未生效。
解决方案:检查腾讯云 DNS 记录的类型、主机记录、记录值是否正确(应为指向 Vercel 的 CNAME 记录),等待 10-30 分钟后,重新在 Vercel 点击「Retry」触发验证。
原因是证书还在签发中或解析错误。
解决方案:等待 5-30 分钟,确认 DNS 解析正确,在 Vercel Domains 页面检查证书状态。
原因是腾讯云域名未完成 ICP 备案。
解决方案:若需中国大陆稳定访问,需在腾讯云备案中心提交 ICP 备案。
整个流程从 Astro 项目初始化、GitHub 仓库创建、自动化部署,到 Vercel 平台托管、腾讯云域名绑定,全程免费、可落地,新手也能快速上手。核心要点是:正确配置 astro.config.mjs、确保 GitHub Actions 权限完整、在 Vercel 正确配置构建命令、DNS 解析记录指向 Vercel,只要按步骤操作,就能顺利上线自己的个人博客。