next.js错误,使用[…id].js使用静态嵌套路由内容(目录)

next.js错误,使用[…id].js使用静态嵌套路由内容(目录),next.js,Next.js,我一直在按照网站上的教程构建一个小应用程序。我一直在使用基于子目录结构的全覆盖路由或嵌套路由 我将所有文件标记在/posts目录中,在/pages目录中,我希望有一些帖子所在的子目录(类别) pages/content/category-1/post1 pages/content/category-2/post2 etc 我的站点只能提供页面/content/[id].js上的内容,如果我将[…id].js作为捕获所有路由的一种方式,我会遇到以下错误: 错误:在/category/[…id]

我一直在按照网站上的教程构建一个小应用程序。我一直在使用基于子目录结构的全覆盖路由或嵌套路由

我将所有文件标记在
/posts
目录中,在
/pages
目录中,我希望有一些帖子所在的子目录(类别)

pages/content/category-1/post1
pages/content/category-2/post2
etc
我的站点只能提供
页面/content/[id].js上的内容,如果我将
[…id].js作为捕获所有路由的一种方式,我会遇到以下错误:

错误:在/category/[…id]

如果我将
[id].js
放在每个子目录
/pages/content/category-1/[id].js中,它可以工作,但如果我有大量的分类目录,那么效率会非常低

我正在学习教程,我的
[…id].js
如下所示:

import Layout from '../../components/layout'
import { getAllPostIds, getPostData } from '../../lib/posts'
import utilStyles from '../../styles/utils.module.css'
import Head from 'next/head'

export default function Post({ postData }) {
  return (
    <Layout>
      <Head>
        <title>{postData.title}</title>
      </Head>
      <article>
        <h1 className={utilStyles.headingXl}>{postData.title}</h1>
        <div className={utilStyles.lightText}>
        </div>
        <div dangerouslySetInnerHTML={{ __html: postData.contentHtml }} />
      </article>
    </Layout>
  )
}

export async function getStaticPaths() {
  // Return a list of possible value for id
  const paths = getAllPostIds()
  return {
    paths,
    fallback: false
  }  
}

export async function getStaticProps({ params }) {
  // Fetch necessary data for the blog post using params.id
  const postData = await getPostData(params.id)
  return {
    props: {
      postData
    }
  }
}
从“../../components/Layout”导入布局
从“../../lib/posts”导入{GetAllPostId,getPostData}
从“../../styles/utils.module.css”导入utilStyles
从“下一个/头”导入头
导出默认函数Post({postData}){
返回(
{postData.title}
{postData.title}
)
}
导出异步函数getStaticPaths(){
//返回id的可能值列表
常量路径=GetAllPostId()
返回{
路径,
后退:错误
}  
}
导出异步函数getStaticProps({params}){
//使用params.id获取博客文章所需的数据
const postData=await getPostData(params.id)
返回{
道具:{
postData
}
}
}

您是否尝试了页面/content/[categoryId]/[id].js。也许在这里你可以找到一个答案:谢谢,非常相似。我创建了一个目录[categoryId]并将[id].js放在里面,但现在当我访问/content/category name/post时,我得到了这个错误“错误:在GetStaticPath中没有为/content/[categoryId]/[id]提供必需的参数(categoryId)”,categoryId应该是错误建议的字符串,因为某些原因它不是。您需要将其转换为字符串。