本教程将指导你在 Vercel 平台部署 AstroPaper 博客,并介绍如何进行日常维护和更新。内容基于 Vercel 官方文档、Astro 官方文档 和 AstroPaper 项目 整理。
Table of contents
Open Table of contents
什么是 Vercel 和 AstroPaper
Vercel 简介
Vercel 是一个现代化的云平台,专为前端开发者设计,提供:
- 零配置部署静态网站和服务端渲染应用
- 全球 CDN 加速,确保快速访问
- 自动 HTTPS 证书
- 与 Git 仓库无缝集成
- 每次提交自动生成预览 URL
- 免费套餐支持个人项目和小型团队
AstroPaper 简介
AstroPaper 是一个基于 Astro 框架的博客主题,特点包括:
- 极简、响应式设计
- 优秀的 SEO 支持
- 无障碍访问(Accessibility)
- 支持亮色/暗色主题
- 模糊搜索功能
- 类型安全的 Markdown
- 自动生成 sitemap 和 RSS feed
- 动态 OG 图片生成
为什么选择 Vercel 部署 AstroPaper
- Vercel 对 Astro 提供原生支持,零配置即可部署
- 自动检测 Astro 项目并配置正确的构建设置
- 每次 Git 推送自动触发部署
- 提供免费的 SSL 证书和自定义域名支持
- 内置性能监控和分析工具
- 全球 CDN 确保博客快速加载
前置准备
必需条件
- GitHub、GitLab 或 Bitbucket 账号
- Vercel 账号(可使用 GitHub 账号登录)
- 本地已安装 Node.js(推荐 v18.14.1 或更高版本)
- 本地已安装 Git
可选工具
- Vercel CLI(命令行工具)
- 代码编辑器(推荐 VS Code)
第一步:创建 AstroPaper 项目
方法一:使用模板创建新项目
如果你还没有 AstroPaper 项目,可以使用以下命令创建:
# 使用 pnpm(推荐)
pnpm create astro@latest --template satnaing/astro-paper
# 使用 npm
npm create astro@latest -- --template satnaing/astro-paper
# 使用 yarn
yarn create astro --template satnaing/astro-paper
按照提示完成项目创建:
# 输入项目名称
Where should we create your new project?
./my-astro-blog
# 选择安装依赖
Install dependencies? (recommended)
Yes
# 选择初始化 Git 仓库
Initialize a new git repository? (optional)
Yes
方法二:Fork 现有项目
- 访问 AstroPaper GitHub 仓库
- 点击右上角的 “Fork” 按钮
- 克隆你 fork 的仓库到本地:
git clone https://github.com/your-username/astro-paper.git
cd astro-paper
pnpm install
本地测试
在部署前,先在本地测试项目:
# 启动开发服务器
pnpm run dev
# 访问 http://localhost:4321
确认项目正常运行后,进行构建测试:
# 构建项目
pnpm run build
# 预览构建结果
pnpm run preview
第二步:配置项目
基础配置
编辑 src/config.ts 文件,配置你的博客信息:
import type { Site, SocialObjects } from "./types";
export const SITE: Site = {
website: "https://your-blog.vercel.app/", // 替换为你的域名
author: "Your Name",
profile: "https://your-profile-url.com/",
desc: "你的博客描述",
title: "你的博客标题",
ogImage: "astropaper-og.jpg",
lightAndDarkMode: true,
postPerIndex: 4,
postPerPage: 3,
scheduledPostMargin: 15 * 60 * 1000, // 15 分钟
showArchives: true,
editPost: {
url: "https://github.com/your-username/your-repo/edit/main/src/data/blog",
text: "建议修改",
appendFilePath: true,
},
};
export const LOCALE = {
lang: "zh-CN", // 设置语言
langTag: ["zh-CN"],
} as const;
export const SOCIALS: SocialObjects = [
{
name: "Github",
href: "https://github.com/your-username",
linkTitle: `在 GitHub 上关注我`,
active: true,
},
{
name: "Mail",
href: "mailto:your-email@example.com",
linkTitle: `发送邮件给我`,
active: true,
},
// 添加更多社交链接...
];
环境变量配置(可选)
如果需要使用 Google Site Verification,创建 .env 文件:
PUBLIC_GOOGLE_SITE_VERIFICATION=your-google-site-verification-value
注意:不要将
.env文件提交到 Git 仓库。确保.gitignore中包含.env。
Vercel 特定配置(可选)
对于静态部署,AstroPaper 不需要额外配置。但如果你想使用 Vercel 的高级功能(如 Web Analytics、Image Optimization),可以添加 Vercel 适配器。
安装 Vercel 适配器
# 使用 astro add 命令(推荐)
pnpm astro add vercel
# 或手动安装
pnpm install @astrojs/vercel
配置 astro.config.ts
如果使用 Vercel 适配器,编辑 astro.config.ts:
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/static";
export default defineConfig({
site: "https://your-blog.vercel.app",
integrations: [
// 其他集成...
],
output: "static", // 静态站点
adapter: vercel({
webAnalytics: {
enabled: true, // 启用 Web Analytics
},
imageService: true, // 启用图片优化
}),
});
注意:对于纯静态部署,不需要添加适配器。只有在使用 Vercel 特定功能时才需要。
第三步:推送代码到 Git 仓库
初始化 Git 仓库(如果还没有)
git init
git add .
git commit -m "Initial commit: AstroPaper blog"
创建 GitHub 仓库
- 访问 GitHub
- 点击右上角的 ”+” 按钮,选择 “New repository”
- 输入仓库名称(如
my-blog) - 选择 Public 或 Private
- 不要初始化 README、.gitignore 或 license(本地已有)
- 点击 “Create repository”
推送代码到 GitHub
# 添加远程仓库
git remote add origin https://github.com/your-username/my-blog.git
# 推送代码
git branch -M main
git push -u origin main
第四步:在 Vercel 部署项目
方法一:通过 Vercel 网站部署(推荐)
1. 登录 Vercel
访问 Vercel 并登录(可使用 GitHub 账号)。
2. 导入项目
- 点击 “Add New…” 按钮
- 选择 “Project”
- 选择你的 Git 提供商(GitHub、GitLab 或 Bitbucket)
- 授权 Vercel 访问你的仓库
- 在仓库列表中找到你的博客项目
- 点击 “Import”
3. 配置项目
Vercel 会自动检测 Astro 项目并配置正确的设置:
- Framework Preset: Astro(自动检测)
- Root Directory:
./(默认) - Build Command:
pnpm run build(自动配置) - Output Directory:
dist(自动配置) - Install Command:
pnpm install(自动配置)
如果需要,可以添加环境变量:
- 点击 “Environment Variables”
- 添加
PUBLIC_GOOGLE_SITE_VERIFICATION等变量
4. 部署
- 点击 “Deploy” 按钮
- 等待构建和部署完成(通常需要 1-3 分钟)
- 部署成功后,你会看到:
- 项目 URL(如
https://my-blog-xxx.vercel.app) - 部署状态
- 构建日志
- 项目 URL(如
5. 访问你的博客
点击项目 URL 或 “Visit” 按钮,查看你的博客。
方法二:使用 Vercel CLI 部署
1. 安装 Vercel CLI
# 全局安装
pnpm install -g vercel
# 或使用 npm
npm install -g vercel
2. 登录 Vercel
vercel login
按照提示完成登录。
3. 部署项目
在项目根目录运行:
vercel
首次部署时,CLI 会询问一些问题:
? Set up and deploy "~/my-blog"? [Y/n] y
? Which scope do you want to deploy to? Your Name
? Link to existing project? [y/N] n
? What's your project's name? my-blog
? In which directory is your code located? ./
? Want to override the settings? [y/N] n
Vercel 会自动检测 Astro 并配置正确的设置。
4. 查看部署结果
部署完成后,CLI 会显示:
✅ Production: https://my-blog-xxx.vercel.app [copied to clipboard]
5. 部署到生产环境
# 部署到生产环境
vercel --prod
第五步:配置自定义域名(可选)
1. 在 Vercel 添加域名
- 进入项目的 Settings 页面
- 点击 “Domains” 标签
- 输入你的域名(如
blog.example.com) - 点击 “Add”
2. 配置 DNS
Vercel 会提供 DNS 配置说明:
使用 A 记录(根域名)
Type: A
Name: @
Value: 76.76.21.21
使用 CNAME 记录(子域名)
Type: CNAME
Name: blog
Value: cname.vercel-dns.com
3. 等待 DNS 生效
DNS 配置通常需要几分钟到 48 小时生效。Vercel 会自动配置 SSL 证书。
4. 更新配置文件
在 src/config.ts 中更新网站 URL:
export const SITE: Site = {
website: "https://blog.example.com/",
// ...
};
在 astro.config.ts 中更新 site:
export default defineConfig({
site: "https://blog.example.com",
// ...
});
提交并推送更改:
git add .
git commit -m "Update site URL to custom domain"
git push
第六步:理解 Vercel 的部署流程
项目和部署的概念
- 项目(Project):你在 Vercel 上部署的应用。一个仓库可以有多个项目。
- 部署(Deployment):项目构建成功后的结果。每次推送都会创建新的部署。
部署类型
生产部署(Production Deployment)
- 当你推送到生产分支(通常是
main或master)时触发 - 自动分配到你的主域名
- 每个项目只有一个活跃的生产部署
预览部署(Preview Deployment)
- 当你推送到非生产分支或创建 Pull Request 时触发
- 生成唯一的预览 URL
- 用于测试和审查更改
- 不影响生产环境
自动部署流程
- 你推送代码到 Git 仓库
- Vercel 检测到推送事件
- 自动触发构建流程:
- 克隆代码
- 安装依赖
- 运行构建命令
- 优化资源
- 部署到全球 CDN
- 生成部署 URL
- 发送部署通知(如果配置了)
构建日志
在 Vercel 项目页面可以查看详细的构建日志:
- 点击部署记录
- 查看 “Building” 标签
- 检查构建输出和错误信息
第七步:日常维护和更新
添加新博客文章
1. 创建文章文件
在 src/data/blog/ 目录下创建新的 Markdown 文件:
# 按分类组织文章
src/data/blog/
├── ai/
│ └── my-new-ai-post.md
├── tools/
│ └── my-new-tool-post.md
└── _general/
└── my-general-post.md
2. 编写文章内容
---
author: Your Name
pubDatetime: 2026-03-01T10:00:00+08:00
title: 我的新博客文章
slug: my-new-blog-post
featured: false
draft: false
tags:
- 标签1
- 标签2
description: 文章简短描述
---
文章内容开始...
## 标题
正文内容...
3. 本地预览
pnpm run dev
访问 http://localhost:4321 查看新文章。
4. 提交并推送
git add src/data/blog/
git commit -m "Add new blog post: my-new-blog-post"
git push
Vercel 会自动检测推送并部署更新。
更新现有文章
1. 编辑文章文件
直接编辑 src/data/blog/ 中的 Markdown 文件。
2. 本地测试
pnpm run dev
3. 提交更改
git add src/data/blog/
git commit -m "Update blog post: article-title"
git push
修改博客配置
更新站点信息
编辑 src/config.ts:
export const SITE: Site = {
// 更新配置...
};
更新样式
编辑 src/styles/global.css 或 src/styles/typography.css。
添加新页面
在 src/pages/ 目录下创建新的 .astro 或 .md 文件。
升级依赖
定期更新项目依赖以获取最新功能和安全修复:
# 检查过时的包
pnpm outdated
# 更新所有依赖到最新版本
pnpm update
# 或更新特定包
pnpm update astro
# 测试更新后的项目
pnpm run build
pnpm run preview
# 提交更新
git add package.json pnpm-lock.yaml
git commit -m "Update dependencies"
git push
使用分支进行测试
在进行重大更改前,建议使用分支:
# 创建新分支
git checkout -b feature/new-design
# 进行更改并提交
git add .
git commit -m "Implement new design"
# 推送分支
git push -u origin feature/new-design
Vercel 会自动为这个分支创建预览部署,你可以在不影响生产环境的情况下测试更改。
创建 Pull Request
- 在 GitHub 上创建 Pull Request
- Vercel 会在 PR 中添加预览链接
- 审查更改
- 合并到 main 分支
- Vercel 自动部署到生产环境
回滚部署
如果新部署出现问题,可以快速回滚:
通过 Vercel 网站
- 进入项目页面
- 点击 “Deployments” 标签
- 找到之前的稳定部署
- 点击三个点菜单
- 选择 “Promote to Production”
通过 Git
# 回退到上一个提交
git revert HEAD
# 或回退到特定提交
git revert <commit-hash>
# 推送回退
git push
性能优化
启用 Vercel Analytics
1. 安装依赖
pnpm install @vercel/analytics
2. 添加到项目
编辑 src/layouts/Layout.astro:
---
import { inject } from '@vercel/analytics';
inject();
---
或在 astro.config.ts 中配置:
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/static";
export default defineConfig({
adapter: vercel({
webAnalytics: {
enabled: true,
},
}),
});
3. 查看分析数据
在 Vercel 项目页面的 “Analytics” 标签查看访问数据。
启用 Speed Insights
Speed Insights 提供性能指标监控:
1. 安装依赖
pnpm install @vercel/speed-insights
2. 添加到项目
编辑 src/layouts/Layout.astro:
---
import { injectSpeedInsights } from '@vercel/speed-insights';
injectSpeedInsights();
---
3. 查看性能数据
在 Vercel 项目页面的 “Speed Insights” 标签查看性能指标。
图片优化
AstroPaper 使用 Astro 的 Image 组件,Vercel 会自动优化图片:
---
import { Image } from 'astro:assets';
import myImage from '../assets/my-image.png';
---
<Image src={myImage} alt="描述" />
缓存配置
Vercel 自动缓存静态资源。如需自定义缓存行为,创建 vercel.json:
{
"headers": [
{
"source": "/assets/(.*)",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000, immutable"
}
]
}
]
}
高级配置
环境变量管理
在 Vercel 添加环境变量
- 进入项目 Settings
- 点击 “Environment Variables”
- 添加变量:
- Name:
PUBLIC_GOOGLE_SITE_VERIFICATION - Value:
your-verification-code - Environment: Production, Preview, Development
- Name:
在代码中使用
const verification = import.meta.env.PUBLIC_GOOGLE_SITE_VERIFICATION;
配置构建设置
在 Vercel 项目 Settings 的 “Build & Development Settings” 中可以自定义:
- Build Command:
pnpm run build - Output Directory:
dist - Install Command:
pnpm install - Development Command:
pnpm run dev
配置重定向
在 vercel.json 中配置重定向:
{
"redirects": [
{
"source": "/old-blog/:slug",
"destination": "/posts/:slug",
"permanent": true
}
]
}
配置 Git 集成
自动部署分支
在 Settings > Git 中配置:
- Production Branch:
main - 自动部署所有分支的预览
忽略构建
如果某些提交不需要触发部署,在提交信息中添加 [skip ci]:
git commit -m "Update README [skip ci]"
监控和调试
查看部署日志
- 进入项目页面
- 点击具体的部署
- 查看 “Building” 和 “Functions” 日志
常见构建错误
依赖安装失败
# 确保 package.json 和 lock 文件同步
pnpm install
git add package.json pnpm-lock.yaml
git commit -m "Update dependencies"
git push
构建超时
如果构建时间过长,检查:
- 是否有大量图片未优化
- 是否有不必要的依赖
- 构建脚本是否高效
环境变量未定义
确保在 Vercel 项目设置中添加了所需的环境变量。
性能监控
使用 Vercel Analytics 和 Speed Insights 监控:
- 页面加载时间
- Core Web Vitals
- 访问量和来源
- 设备和浏览器分布
安全最佳实践
保护敏感信息
- 不要在代码中硬编码 API 密钥
- 使用环境变量存储敏感信息
- 确保
.env文件在.gitignore中
依赖安全
# 检查安全漏洞
pnpm audit
# 自动修复
pnpm audit --fix
HTTPS
Vercel 自动为所有部署提供 HTTPS,无需额外配置。
成本和限制
免费套餐
Vercel 免费套餐包括:
- 无限部署
- 100 GB 带宽/月
- 6000 分钟构建时间/月
- 自动 HTTPS
- 预览部署
- 基础分析
升级选项
如果需要更多资源,可以升级到 Pro 或 Enterprise 套餐。
故障排除
部署失败
检查构建日志
查看详细的错误信息,通常会指出问题所在。
本地复现
# 清理缓存
rm -rf node_modules .astro dist
pnpm install
pnpm run build
404 错误
确保 astro.config.ts 中的 site 配置正确:
export default defineConfig({
site: "https://your-domain.com",
});
样式未加载
检查 public/ 目录中的静态资源是否正确引用。
图片显示问题
确保图片路径正确,使用 Astro 的 Image 组件:
import { Image } from 'astro:assets';
最佳实践总结
开发流程
- 在本地开发和测试
- 使用分支进行实验性更改
- 创建 Pull Request 进行代码审查
- 利用预览部署测试更改
- 合并到主分支自动部署到生产环境
内容管理
- 使用清晰的文件命名和目录结构
- 为文章添加完整的 frontmatter
- 定期备份内容
- 使用 Git 历史追踪更改
性能优化
- 优化图片大小和格式
- 启用 Vercel Analytics 监控性能
- 定期更新依赖
- 使用 Lighthouse 检查性能指标
安全维护
- 定期运行
pnpm audit - 及时更新依赖
- 使用环境变量管理敏感信息
- 启用 Vercel 的安全功能
总结
通过本教程,你已经学会了:
- 创建和配置 AstroPaper 博客项目
- 在 Vercel 平台部署博客
- 配置自定义域名和 HTTPS
- 理解 Vercel 的部署流程
- 进行日常维护和内容更新
- 优化博客性能
- 监控和调试部署问题
Vercel 和 AstroPaper 的组合为你提供了一个强大、快速且易于维护的博客平台。利用 Vercel 的自动部署和全球 CDN,你可以专注于创作内容,而不用担心基础设施问题。
参考资源
- Vercel 官方文档 - Vercel 平台完整文档
- Astro 官方文档 - Astro 框架文档
- AstroPaper GitHub - AstroPaper 项目仓库
- AstroPaper 演示站点 - 在线演示
- Vercel Astro 指南 - Vercel 上部署 Astro 的官方指南
- Astro Vercel 部署指南 - Astro 官方 Vercel 部署文档
内容基于 Vercel 和 Astro 官方文档改编,遵循相应的开源协议。