小编Sad*_*ani的帖子

如何在 Next.js 中重新验证特定动态段 (/product/123),而不重新验证所有段 (/product/[id])?- Next.js 13.4.6

我正在开发Next.js项目版本 13.4.6并且我有一个动态路由 /product/[id]当特定产品的内容发生更改时,我需要重新验证其数据,例如/product/123

\n

我知道revalidatePath函数,它允许重新验证与特定路径关联的数据。但是,当我将 revalidatePath 与动态段(例如 revalidatePath('/product/[id]') 一起使用时),它会重新验证/product/[id] 下的所有段

\n

以下是演示如何使用 revalidatePath 函数的示例代码片段:

\n
import { NextRequest, NextResponse } from 'next/server'\nimport { revalidatePath } from 'next/cache'\n\nexport async function GET(request: NextRequest) {\n  const path = request.nextUrl.searchParams.get('path') || '/'\n  revalidatePath(path)\n  return NextResponse.json({ revalidated: true, now: Date.now() })\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Next.js版本13.4.6文档表示 revalidatePath 函数接受单个参数 path,该参数应该是一个字符串,表示与要重新验证的数据关联的文件系统路径。这不是字面意思的路由段(例如/product/123),而是文件系统上的路径(例如/product/[id])\xe2\x80\x8b\xe2\x80\x8b。

\n

我想要实现的是有选择地仅重新验证特定的产品 ID,例如 /product/123,而不重新验证 /product/[id] 下的所有其他段。

\n

有没有办法在 …

next.js nextjs-dynamic-routing next.js13

5
推荐指数
1
解决办法
1927
查看次数