大规模生成 OG 图片
大规模生成 og:image 意味着为大型网站的每个页面(数千篇博客文章、产品或文档页面)自动创建独特且正确的社交预览。FastOG 按需渲染每张图片(1 次渲染),并由 Cloudflare 永久缓存相同的 URL,因此规模不会成倍增加成本或设置时间。
大规模下独特图片的问题
手工制作数千张1200×630的图片并不可行。大多数团队退而求其次,为整个网站使用一张通用卡片——这错失良机,因为带有真实标题的每页卡片能获得更多分享和点击。解决方案是确定性的按需渲染:图片在渲染时从页面自身的数据中派生出来。
为什么 FastOG 具有可扩展性
核心思想是内容签名、缓存的 URL:
- 在渲染时,您根据页面标题和字段对 URL 进行签名(这是内容的纯函数)。
- 爬虫抓取该 URL 一次;FastOG 渲染 PNG(1 次渲染)并将其缓存在边缘。
- 之后每次抓取相同 URL 时,都会从缓存中提供——即时且不计入。
因此,10,000 个不同的页面仅计 10,000 次渲染,之后的无限分享不产生任何费用。
批量 / 系统性部署
要在整个站点上部署 og:image,请在构建时或发布时为每个页面生成 URL:
tsx
// Static generation — generateMetadata per route
export async function generateStaticParams() {
return posts.map((p) => ({ slug: p.slug }));
}
export function generateMetadata({ params }) {
const post = posts.find((p) => p.slug === params.slug);
return {
openGraph: {
images: [generateOgImageUrl({
template: "blog",
title: post.title,
subtitle: post.excerpt,
author: post.author,
})],
},
};
}
让规模化保持低成本的模式
| 模式 | 为何有帮助 |
|---|---|
| 在构建/渲染时签名 | 确定性 URL → 共享缓存 |
| 每种内容类型复用模板 | 品牌一致,减少设计决策 |
| 缓存相同 URL | 重复分享不计入 |
| 在发布时生成,而非每次请求时生成 | 避免首次分享时的冷渲染 |
常见问题
1,000 或 10,000 页的费用是多少?
每次渲染针对一张唯一图片。10,000 个唯一页面 = 10,000 次渲染(一次性);无限次重新分享不产生费用。请参阅 定价 了解 Dynamic API 套餐。
内容频繁变化的页面如何处理?
每次内容变化都会生成新的 URL 和新的渲染(消耗 1 次配额)。稳定的页面会保持缓存。
我可以在静态构建期间生成 OG 图片吗?
可以——许多团队在构建/发布时(SSG)生成并存储图片 URL,这样首次分享时就不会出现冷渲染。