2759 字
14 分钟

5个最好用的Astro博客主题推荐

花了两个礼拜试了十几个Astro博客主题。有些看起来很炫但太臃肿,有些太简陋连基本功能都没有,还有些配置起来简直是噩梦。最后筛出了5个真正好用的,每个都亲自用过。

先看个快速对比:

主题名称适合人群核心特色GitHub星数难度
AstroPaper技术博主、长文写作极简设计、模糊搜索3.5k+⭐⭐
Astro Air Blog个人博主、作品集优雅动画、个性化活跃社区⭐⭐
Bookworm Light团队博客、内容平台多作者支持热门主题⭐⭐⭐
AstroWind企业博客、快速上线开箱即用、功能全热门主题
Astro Cactus个人博客、简洁风格固执己见、省心活跃社区

AstroPaper - 极简主义者的首选#

GitHub上有3.5k+星标,是目前最受欢迎的Astro博客主题之一。

模糊搜索功能是亮点,输入关键词就能快速找到文章。草稿功能很实用,写到一半的文章不会被误发出去。响应式设计做得很好,手机上看完全没问题。深浅模式切换很丝滑。

适合技术博主和喜欢长文写作的人。如果你主要写教程、技术分析这类内容,这个主题能让读者专注在文字上。

核心特性

  • 模糊搜索
  • 草稿功能和分页
  • 自动生成RSS和sitemap
  • SEO和无障碍访问优化
  • 类型安全的Markdown

官方地址https://astro-paper.pages.dev/

Astro Air Blog - 优雅简洁的个人博客#

比AstroPaper更注重个人风格展示。页面加载动画很流畅不会觉得晃眼。

配置文件设计得人性化。你可以直接编辑 about.mdxintro.mdxlinks.mdx 这几个文件来定制页面内容,不用到处找配置项。标签系统也做得不错。

想做个人作品集博客,或者想展示自己的创作,Astro Air是个好选择。它给人的感觉更像是”我的个人空间”而不是”新闻网站”。

核心特性

  • 极简优雅的设计
  • 灵活的自定义页面(关于、介绍、友链)
  • 标签分类系统
  • MDX支持
  • 社交媒体分享

GitHub地址https://github.com/sun0225SUN/astro-air

Bookworm Light - 多作者博客利器#

原生支持多作者系统,每篇文章都能标注作者信息,还能按作者筛选文章。

可定制性超强,不管你是做美食博客、摄影分享还是旅行日记,都能调整得很合适。深色模式也支持,而且切换效果很顺滑。

我用它搭过一个测试站点,配置过程比想象中简单,文档写得还算清楚。唯一要注意的是功能多了配置项也多,第一次用可能需要点时间熟悉。

核心特性

  • 多作者支持
  • 丰富的分类和标签系统
  • 高度可定制化
  • 深色模式
  • 适配多种博客类型(美食、摄影、旅行等)

适用场景:团队博客、内容平台、垂直领域博客

AstroWind - 功能最全面的选择#

适合那种”我要快速上线一个博客”的场景。基于Tailwind CSS,用过Tailwind的话上手会很快。开箱即用,很多优化都帮你做好了,PageSpeed分数天生就高。

图片优化、自动RSS、社交分享这些功能都是内置的,不用自己加插件。还支持RTL(从右到左)语言,如果你的博客面向国际用户,这点很实用。

更适合企业博客或者需要快速上线的项目,因为它把该有的都给你准备好了,你只需要专注写内容。

核心特性

  • Astro 4.0 + Tailwind CSS
  • PageSpeed高分优化
  • 内置图片优化
  • 自动RSS订阅
  • RTL语言支持
  • 深色模式

适用场景:企业博客、快速上线项目、国际化需求

Astro Cactus - 简单且固执己见的选择#

“固执己见”的意思是它已经帮你做好了大部分设计决策,你不用纠结该用什么配色、什么布局。这对有选择困难症的人来说反而是好事。

用的是Astro 4.0加Tailwind CSS,代码写得挺规范的,语义化HTML做得好。如果你想基于它做二次开发,代码可读性不错。

适合追求简洁、不想在设计上花太多时间的个人博主。拿来就能用,省心。

核心特性

  • Astro 4.0 + Tailwind CSS
  • 语义化HTML标记
  • SEO友好设计
  • 响应式布局
  • 深浅模式切换
  • 固执己见的设计(减少决策成本)

适用场景:个人博客、快速启动、不想纠结设计细节

详细安装配置教程(以AstroPaper为例)#

第一步:安装主题#

最简单的方法是用包管理器。我推荐用pnpm,速度快而且省磁盘空间:

Terminal window
# 用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

运行命令后,它会问你项目名称。然后等它安装依赖,喝口水的功夫就装好了。

如果你用Docker,也可以这么搞:

Terminal window
docker build -t astropaper .
docker run -p 4321:80 astropaper

除非你的开发环境特别复杂,一般用不着Docker。

第二步:启动开发服务器#

装完之后进入项目目录,启动开发服务器:

Terminal window
# 先安装依赖(如果刚才没自动装的话)
pnpm install
# 启动开发服务器
pnpm run dev

然后打开浏览器访问 http://localhost:4321,就能看到你的博客了。

第三步:核心配置#

主要配置都在 src/config.ts 这个文件里:

export const SITE = {
website: "https://你的域名.com", // 生产环境必填,开发时可以留空
title: "你的博客名称",
desc: "博客简介,用一两句话说清楚你的博客是关于什么的",
author: "你的名字",
// 其他配置...
}

开发阶段 website 可以先不填,等准备部署的时候再改成你的实际域名。这个很重要,因为它会用来生成网站地图和社交分享卡片的URL。

还有 astro.config.mjs 文件,这是Astro框架自己的配置。一般默认的就够用了,除非你要加插件或者改端口。

第四步:创建第一篇文章#

文章放在 src/content/posts/ 目录下。新建一个Markdown文件,比如 my-first-post.md

---
title: "我的第一篇文章"
description: "简单介绍一下这篇文章讲什么"
pubDate: 2025-12-02
tags: ["Astro", "博客"]
---
# 正文开始
这里写你的文章内容,用Markdown格式就行。

保存文件,页面会自动刷新,你就能在首页看到这篇文章了。

注意几点:

  • pubDate 是必填的,格式是 YYYY-MM-DD
  • tags 是可选的,但建议填上,方便分类
  • ogImage 可以指定社交分享时显示的封面图,不填的话会用默认图

修改主题颜色(可选)#

如果你想改主题颜色,可以参考官方的颜色自定义文档。AstroPaper支持多种配色方案,改起来也不复杂。

默认的颜色已经挺好看了,我自己也没怎么改。

常见问题解决#

安装相关#

yarn安装后报错找不到sharp模块

这是yarn 1的一个已知问题。手动装一下sharp:

Terminal window
yarn add sharp

装完重启开发服务器就好了。

Windows PowerShell运行诊断命令报错

如果你用的是Windows PowerShell,运行 astro check --watch & astro dev 可能会报错。这是因为PowerShell不支持 & 这种后台运行语法。

解决办法是装个concurrently包,或者干脆分开运行两个命令。

端口4321被占用

astro.config.mjs 里改个端口:

export default defineConfig({
server: {
port: 3000 // 改成你想要的端口
}
})

配置相关#

改了配置不生效

配置文件改完后记得重启开发服务器,不然不会生效。我就是因为没重启,折腾了半小时才反应过来。

快捷键 Ctrl+C 停止服务器,然后重新 pnpm run dev

图片显示不出来

图片要放在 public 文件夹里,引用的时候路径写成 /图片名.jpg。注意前面那个斜杠别漏了。

或者你也可以把图片放在 src/assets 里,然后在Markdown里用相对路径引用。两种方式都可以。

深色模式切换有bug

检查一下是不是自定义CSS的时候没考虑深色模式。主题色配置文件里应该有对应的深色模式变量,改颜色的时候记得两套都改。

部署相关#

部署到Vercel或Netlify失败

检查构建命令是不是 astro build,输出目录是不是 dist。这两个配错了肯定部署失败。

确认一下Node.js版本,Astro 4.0要求Node 18+,版本太低会报错。

部署后CSS样式丢失

这通常是base路径配置的问题。如果你的博客不是部署在根目录(比如 你的域名.com/blog/),需要在 astro.config.mjs 里设置base:

export default defineConfig({
base: '/blog'
})

不然CSS和JS文件的路径会找不到。

进阶自定义建议#

添加评论系统#

推荐用Giscus(基于GitHub Discussions)或者Waline(轻量级独立评论系统)。集成起来不难,照着官方文档走就行。

Giscus的好处是完全免费,而且数据存在GitHub上不用担心丢失。Waline功能更丰富,但要自己部署服务器。

添加访问统计#

Google Analytics是最常用的,但如果你在意隐私,可以试试Plausible或者Umami,这两个都是注重隐私保护的统计工具。

集成方式就是在HTML模板里加一段统计代码,很简单。

优化图片加载#

如果你的文章里图片比较多,建议开启图片懒加载。Astro有内置的图片优化功能,用 <Image> 组件代替普通的 <img> 标签就能自动优化。

还可以考虑用CDN加速,把图片传到Cloudinary或者Cloudflare Images这种服务上,加载速度会更快。

多语言支持#

如果你的博客面向国际用户,可以加个多语言切换功能。Astro支持国际化,配置起来也不算麻烦。不过要注意,每篇文章都要翻译成多个语言版本,工作量会大不少。

我的踩坑记录#

第一次用AstroPaper的时候,忘记设置 website 字段,sitemap 生成的全是相对路径。改完重新部署就好了。

还有一次配置文件改完没重启开发服务器,折腾了半小时才发现问题在哪。之后每次改配置我都记着重启。

图片路径也踩过坑。一开始把图片放在 src/assets 里,结果引用路径写错了,图片一直显示不出来。后来才搞清楚 public/src/assets/ 的区别。

Astro官方主题库会定期更新新主题,可以收藏起来,没事去逛逛说不定能发现更适合你的。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
5个最好用的Astro博客主题推荐
https://blog.moewah.com/posts/5-best-astro-blog-themes-recommended/
作者
GoWah
发布于
2025-10-01
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
GoWah
Hello, I'm GoWah.
分类
标签
站点统计
文章
160
分类
9
标签
350
总字数
301,106
运行时长
0
最后活动
0 天前

目录