Astro Ink部署指南:Vercel上SSR还是纯静态?4步转换法彻底讲明白
2026/8/22 13:09:32 网站建设 项目流程

Astro Ink部署指南:Vercel上SSR还是纯静态?4步转换法彻底讲明白

【免费下载链接】astro-inkCrisp, minimal, personal blog theme for Astro项目地址: https://gitcode.com/gh_mirrors/as/astro-ink

Astro Ink 是一款专为个人博客打造的极简 Astro 主题模板。很多新手在部署时都会困惑:到底该选 Vercel 上的 SSR(服务端渲染),还是更简单的纯静态托管?本文用 4 步转换法把这个问题彻底讲明白,帮你根据自己的需求快速完成 Astro Ink 部署。

先搞清楚:Astro Ink 为什么默认是 SSR?

打开项目根目录的 astro.config.mjs 文件,你会看到两个关键配置:

  • 第 20 行:output: 'server'—— 声明本项目以服务端渲染模式构建
  • 第 55 行:adapter: vercel()—— 接入 Vercel 官方适配器,天然支持一键部署到 Vercel

之所以默认 SSR,是因为主题内置了两个依赖服务端的能力:

  1. 文章浏览量统计src/pages/api/blog/views/[slug].json.ts中有一个 API 路由,配合 Redis(ioredis)或 Turso 数据库,为每篇文章提供动态的浏览计数功能
  2. Decap CMS 管理后台:通过/admin路径即可在网页上写文章、改文章,省去本地编辑 Markdown 的麻烦

💡 简单记忆:你需要在线看文章数据、在线写文章 → 选 SSR;只想把博客"发出去" → 选纯静态。

SSR vs 纯静态:一张表帮你做决定

对比项SSR(默认)纯静态
部署平台Vercel / Netlify Functions任意静态托管(GitHub Pages、Cloudflare Pages 等)
浏览量统计✅ 支持(需配 Redis/Turso)❌ 需移除
CMS 在线写文章✅ 支持部分受限
访问速度极快极快(CDN 直出,最快)
成本有 Serverless 用量基本免费
配置难度需配置环境变量最简单,开箱即用

新手建议:如果你只是想快速拥有一个漂亮的个人博客,纯静态是更省心的选择,3 分钟搞定;如果你想要浏览量统计或在线编辑文章,保留默认的 SSR 即可。

4 步转换法:从 SSR 切换到纯静态构建

整个过程只涉及两个文件的改动,跟着做就行:

第 1 步:修改 output 为 static

打开 astro.config.mjs,将第 20 行的output: 'server'改为output: 'static'

第 2 步:移除 Vercel 适配器

删除同文件第 55 行的adapter: vercel()(连同第 8 行的 vercel 导入语句一起删除)。没有适配器,构建产物就是纯 HTML 文件,可以扔到任何静态托管平台。

第 3 步:删除浏览量统计 API

删除src/pages/api/blog/views/[slug].json.ts文件。静态模式下不存在 API 路由,保留它会导致构建报错。相关的数据库实现位于src/utils/views/目录(包含 in-memory、ioredis、turso 三种方案),静态模式下同样用不到。

第 4 步:关闭浏览量统计开关

打开 src/config.ts,将第 58 行的USE_VIEW_STATS = true改为false,页面上就不会再发起浏览量请求。

完成以上 4 步后,运行npm run build,构建产物输出到dist/目录,直接把dist/交给任意静态托管平台即可。

Vercel 部署要点(保留 SSR 时)

如果你决定保留默认的 SSR 模式,部署前还需要注意环境变量配置。参考根目录的 .env.example,需要准备的变量有:

  • SITE_URI:你的站点地址
  • OAUTH_GITHUB_CLIENT_ID/OAUTH_GITHUB_CLIENT_SECRET:CMS 后台的 OAuth 凭据
  • REDIS_URITURSO_DB_URL+TURSO_DB_AUTH_TOKEN:浏览量统计的数据库连接

在 Vercel 控制台的项目设置中配置好这些环境变量后,连接你的代码仓库,Vercel 会自动识别 Astro 项目并完成部署。本地开发时,先把.env.example复制为.env并填入SITE_URI=http://localhost:4321即可。

常见问题

Q:纯静态模式下还能用深色模式、客户端搜索吗?

可以。这些功能全部由前端实现(Svelte 组件 + Lunr.js 搜索索引,构建时由scripts/search/prepare-index.js生成),与 SSR 无关。

Q:以后想从静态切回 SSR 怎么办?

把上面 4 步逆向操作即可:恢复output: 'server'、加回adapter: vercel()、恢复 API 文件和USE_VIEW_STATS = true

总结

Astro Ink 部署的核心决策只有一个:要不要浏览量统计和在线 CMS。要,就用默认的 SSR + Vercel 适配器,配置环境变量即可;不要,就按本文的 4 步转换法改为纯静态,享受最快的访问速度和最简单的部署流程。两种方式都很快,选对适合自己的那一个,你的个人博客就能在几分钟内上线 🚀

【免费下载链接】astro-inkCrisp, minimal, personal blog theme for Astro项目地址: https://gitcode.com/gh_mirrors/as/astro-ink

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询