首页 > 解决方案 > 如何在 Next.js 中使用连字符创建动态 url?

问题描述

我需要在 Next.js 中创建一个动态路径,例如“courses-demo-[dynamic_name]”。我创建了这样的嵌套文件夹:

这个文件夹结构只支持/courses-demo/a/courses-demo/b/c等路径。但我想要一个这样的 URL:/courses-demo-photograpycourses-demo-web-development,还有许多动态名称。我怎么能这样做?

标签: node.jsreactjsnext.js

解决方案


你可以[slug].js在你的/pages目录中创建一个文件,然后使用 javascript 来提取实际的 slug 来获取内容。由于静态和动态部分都可以有连字符,你不能只分割连字符,所以你可以做这样的事情来获得适当的静态和动态部分,像这样:

// You will obviously get this from the URL, not hard-coded like here
let params = {
  slug: 'courses-demo-photography'
}

// List all of your possible categories
let categories = [
  'courses-demo',
  'courses-paid'
];

let category = categories.reduce(cat => params.slug.startsWith(cat) && cat)
let dynamicPart = params.slug.substring(category.length + 1)
console.log(category)
console.log(dynamicPart)


推荐阅读