我仔细阅读了下一个路由系统的文档。它只提到我可以像这样实现动态路由:
http://localhost:3000/level1/dynamicSlug
但我正在努力实现这样的目标:
http://localhost:3000/level1/level2/dynamicSlug
我也想动态创建 level2
非常感谢 !
小智 12
可以通过这种方式根据您的要求进行嵌套场景。例如:
pages/
level1/
[dynamicSlug]/
- index.js // will match for /level1/1234
level2/
- index.js // will match for /level1/level2
- [dynamicSlug].js // will match for /level1/level2/1234
Run Code Online (Sandbox Code Playgroud)
或者
pages/
level1/
[dynamicSlug]/
- index.js // will match for /level1/1234
level2/
- index.js // will match for /level1/level2
[dynamicSlug]/
- index.js // will match for /level1/level2/1234
Run Code Online (Sandbox Code Playgroud)
小智 5
我知道这是一篇有点旧的帖子,但我只想分享我对 NextJS v11 的工作回应。
我想要两个级别的动态路由。例如:
{siteroot}/dynamicPage{siteroot}/dynamicUrlSection/dynamicPage我的文件夹结构是:
/pages/[section]/[page].tsx/pages/[section]/index.tsx这样,根目录的“dynamicPage”路径由 处理index.tsx,嵌套路由由 处理[page].tsx
Contentful额外信息:我正在作为 CMS工作。我对两个级别的所有页面使用单一内容模型。该模型具有“部分”和“页面”属性。为根动态页面(即 )提供服务的条目/pages/[section]/index在 的“page”属性中具有复合值{section}-index。然后我必须在我的客户端代码中变得聪明一些:
if (!page) {
page = `${section}-index`;
}
await fetchData(section, page);
Run Code Online (Sandbox Code Playgroud)
你有2个选择:
Dynamic Routing通过调用文件夹 as[dynSlag]并将页面文件放入其中来使用 v9 。custom server and routing,您将需要定义一个自定义服务器,将您的路径映射到特定的下一页。| 归档时间: |
|
| 查看次数: |
7994 次 |
| 最近记录: |