用途:将 Sanity 无头 CMS 集成到以结构化内容为核心的站点,需要编辑器 UI 时使用。架构为 Sanity Studio(编辑界面)、Sanity API(内容库)与站点(Astro/11ty,构建时取数)三层。
主要能力:用 schema 定义文档类型(如 post、author),字段可含 string、slug、datetime、reference、image、array(block/image/code)并设置校验与预览;用 GROQ 查询内容,支持按条件、排序、引用、分页、搜索与计数;用客户端在构建时取数;用图片 URL 构建器做尺寸、格式转换和响应式 srcset;渲染 Portable Text 富文本;实现预览/草稿读取。
使用方式:初始化项目可运行 npm create sanity@latest -- --project-name my-project --dataset production,或 npm install sanity @sanity/client;Astro 集成需 npm install @sanity/astro @sanity/image-url。在 sanity/schemas 下定义并注册 schema,在 sanity.config.js 配置 projectId 与 dataset;在 src/lib/sanity.js 用 createClient 创建客户端,生产用 CDN,预览用带 token 的客户端(token 来自环境变量)。查询用 client.fetch 执行 GROQ。Astro 中可从 sanity:client 导入 sanityClient 并在页面或 getStaticPaths 中查询;11ty 中可放在 src/_data 数据文件。部署 Studio 用 npx sanity deploy,并在管理后台配置 CORS 与只读 API token。
适用场景与限制:适合博客、文档等内容驱动站点,需在 Astro 或 11ty 中做构建时取数。预览需 PREVIEW_SECRET 等密钥配置,客户端对草稿内容的读取需 token。资料未提供具体收费、价格、性能或效果数据,也未提供官方文档地址;相关技能提及 astro、eleventy、env-config、deployment。