Next.js 路由:从 slug 页面推送新路由不正确路由

Next.js routing: pushing a new route from a slug page doesn't route properly

假设我有 2 条路线:/video/products/[id],所以我的 pages 文件夹包含 video.jsproducts/[id].js。当我使用 router.pushLink/products/[id] 导航到 /video 时,URL 更新为 /products/video。显然这不是正确的行为。

我错过了什么?

我认为你没有正确命名你的文件。

要获取 /video,您只需将 video.js 作为您的页面。

要获取 /products/[id] 页面,您需要有 /products/[id].js 文件

您不要将其命名为 products[id].js。只是 [id].js.

因此,将您的 [id].js 文件放入您的 /products 文件夹中。

并将您的 video.js 文件放入您的页面文件夹中。例如 /pages/video.js 转到 /video route

而/pages/products/[id].js会转到/products/id.

总结:你的 pages 文件夹应该有 video.js 文件,并创建文件夹 products,并将 [id].js 文件放在你的 products 文件夹中。

您需要将视频页面的路径提供为 /video 而不仅仅是 video。否则,它将根据您所在的当前路径进行路由 - 从您的产品页面中可以看到 /products.

router.push('/video')
<Link href="/video">...</Link>