假设我有 2 条路线:/video
and /products/[id]
,所以我的pages
文件夹包含video.js
and products/[id].js
。当我使用router.push
或Link
导航到/video
from/products/[id]
时,URL 会更新为/products/video
. 显然这不是正确的行为。
我错过了什么?
假设我有 2 条路线:/video
and /products/[id]
,所以我的pages
文件夹包含video.js
and products/[id].js
。当我使用router.push
或Link
导航到/video
from/products/[id]
时,URL 会更新为/products/video
. 显然这不是正确的行为。
我错过了什么?
您需要提供视频页面的路径,/video
而不仅仅是video
. 否则,它将相对于您当前所在的路径进行路由 - 从您的产品页面是/products
.
router.push('/video')
<Link href="/video">...</Link>
我认为您没有正确命名文件。
要获取 /video,您只需将 video.js 作为您的页面。
要获取 /products/[id] 页面,您需要有 /products/[id].js 文件
您不要将其命名为 products[id].js。它只是 [id].js。
所以把你的 [id].js 文件放在你的 /products 文件夹中。
并将您的 video.js 文件放入您的 pages 文件夹中。例如 /pages/video.js 转到 /video 路由
/pages/products/[id].js 将转到 /products/id。
摘要:您的 pages 文件夹应该有 video.js 文件,并创建文件夹 products,并将 [id].js 文件放入您的 products 文件夹中。