概览在外部系统更新数据后通过 Webhook 触发 Next.js 的精确失效。结合 Cache Tags 与路径刷新,减少全站重建,提高一致性与效率。Webhook 接口app/api/revalidate/route.tsimport { revalidateTag, revalidatePath } from 'next/cache' export async function POST(req: Request) { const secret = process.env.REVALIDATE_SECRET const body = await req.json() if (body.secret !== secret) return new Response('Unauthorized', { status: 401 }) const tags: string[] = body.tags || [] const paths: string[] = body.paths || [] for (const t of tags) revalidateTag(t) for (const p of paths) revalidatePath(p) return Response.json({ ok: true, tags, paths }) } 外部系统调用await fetch('https://example.com/api/revalidate', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ secret: process.env.REVALIDATE_SECRET, tags: ['posts'], paths: ['/posts'] }), }) 协同策略将数据域映射为标签,按域精确失效。对受影响的页面按需触发路径刷新。与 CDN Purge 或 Surrogate-Key 协作形成端到端一致性。验证与指标Next.js:15.0+;Node.js:20.x失效路径与标签在 1–5s 内生效;无需全站重建

发表评论 取消回复