2

我搜索了这个,但我只能在 Laravel 和 PHP 中找到示例,我需要知道如何使用 Next.js 执行此操作。

我所知道的是,我可以像这样在 Next.js 中以通常的方式执行动态路由......

/pages/post/[postId]例如,这将转化/pages/post/23435为,这样如果有人拥有我可以抓取的 URL [postId]router.query并且可以向用户显示正确的帖子,这很容易。

但是如果我想在 URL 中显示帖子名称而不是 id 怎么办?就像 Udemy 在单词之间使用破折号一样......

https://www.udemy.com/course/your-custom-react-component/learn/lecture/

同时,如果有人有那个 URL,我仍然可以向他们显示正确的帖子吗?

我知道我可以/pages/post/[postName]在 URL 中显示帖子名称,但这不是唯一的,也无法显示正确的帖子。

我怎样才能做到这一点?

4

1 回答 1

0

您可以postName按照您的建议进行操作,然后注意 postNames 是唯一的,并且每个都映射到一个postId(这是您需要处理的事情;因此在您的数据库中,您将为每个 slug 生成一个唯一的 slug postName

另一种解决方案是同时显示 name 和 id like /pages/post/[postName]/[postId]。您可以使用多个参数,检查https://nextjs.org/docs/routing/dynamic-routes

于 2020-09-14T15:17:09.970 回答