next.js 定义不带斜线的动态路由

vptzau2j  于 2023-04-20  发布在  其他
关注(0)|答案(2)|浏览(79)

我有一个下一个12应用程序。我有一个SSR组件,其路由为/product 1232312321。
到目前为止,我的解决方案是创建两个文件夹,一个作为product,另一个作为[id]。然后从config.js重定向从/product/1232312321到/product 1232312321,如下所示:

{
        source: '/product /:slug',
        destination: '/product :slug',
        permanent: true,
},

这个解决方案对我不再起作用了。有没有一种方法可以定义这个路由,而不像/product 1232312321这样的斜线?

daupos2t

daupos2t1#

不建议这样做,但你可以创建页面文件[id].tsx(或js),然后使用传递的参数,你可以拉入id(“product1111”)并以这种方式呈现页面。
请注意,这是非常糟糕的做法,并且会导致任何404都被定向到该页面,因此您需要进行一些参数检查以确保其格式为product{id}
我强烈建议您转向docs中提到的标准/product/[id]实践。

krugob8w

krugob8w2#

试着像这样修改你的代码:

{
  source: '/product:slug',
  destination: '/product/:slug',
  permanent: true,
},

源是您正在访问的路径,目标是您尝试重定向到的路由。这样,当您转到“/product 12345678”时,它将被重定向到“product/12345678”,这是到Next的有效路由。请在此处查看Next Dynamic Routes的文档https://nextjs.org/docs/api-reference/next.config.js/redirects

相关问题