Sad*_*ani 5 next.js nextjs-dynamic-routing next.js13
我正在开发Next.js项目版本 13.4.6并且我有一个动态路由 /product/[id]。当特定产品的内容发生更改时,我需要重新验证其数据,例如/product/123。
\n我知道revalidatePath函数,它允许重新验证与特定路径关联的数据。但是,当我将 revalidatePath 与动态段(例如 revalidatePath('/product/[id]') 一起使用时),它会重新验证/product/[id] 下的所有段。
\n以下是演示如何使用 revalidatePath 函数的示例代码片段:
\nimport { 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}\nRun Code Online (Sandbox Code Playgroud)\nNext.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 13 中实现这种选择性重新验证?
\n任何经过测试的替代策略或最佳实践将不胜感激。
\n先感谢您!
\n根据文档,问题现已解决。
revalidatePath 函数现在允许我们重新验证动态路径中的文字路径段,而无需重新验证所有其他动态段。
https://nextjs.org/docs/app/api-reference/functions/revalidatePath
| 归档时间: |
|
| 查看次数: |
1927 次 |
| 最近记录: |