首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在index.html中使用getStaticPaths生成Next.js?

如何在index.html中使用getStaticPaths生成Next.js?
EN

Stack Overflow用户
提问于 2021-01-05 22:48:50
回答 1查看 1.1K关注 0票数 8

我试图在index.html中使用getStaticPaths生成一个Next.JS页面,但是每次尝试这样做时,它都会抛出一个错误,或者创建一个index目录而不是一个文件。

到目前为止,我已经试过了:'''/''index'params.page。我还尝试在trailingSlash: true,文件中添加next.config,但这也不起作用。

我在页面目录中有一个[page].js文件。使用这个文件,我会生成许多页面,因为[page].js文件是一个模板文件。我使用这个模板方法是因为有很多常见的组件,每个页面唯一不同的地方就是“主内容”。想象一下,生成10个页面,其中每个页面都有相同的导航条和侧菜单,但内容(文本)不同。所以我试着生成10个页面,其中一个是index.html页面,但是它不是生成一个.html文件,而是生成一个index目录。我该怎么解决这是我的问题?

代码语言:javascript
复制
export const getStaticPaths = async () => {
    return {
        paths: [{
            params: { // Imagine the following code for another 9 pages
                page: 'index' // Only the `index` one has a problem (creates a directory instead of file)
            }
        }]
    };
}

如果我在index中传递除params.page之外的任何其他字符串,它将创建一个[my_string].html页面。我希望能够使用next.js的getStaticPaths方法创建一个getStaticPaths页面。

EN

回答 1

Stack Overflow用户

发布于 2022-02-15 07:27:14

答案可能有点晚了,但是NextJS增加了一个可选的捕获所有路由。

现在您可以使用两个方括号[[...slug]]命名您的页面。

在get静态道具上,params将是一个空对象,不具有弹状体属性,因此您可以执行以下检查:

代码语言:javascript
复制
export const getStaticProps: GetStaticProps<{ data: PageData }> = async ({ params }) => {
  const homePage = !!!params.url;

  // now do your logic if the page is the home.

请在这里核对我的问题:

https://github.com/vercel/next.js/discussions/34311#discussioncomment-2178744

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65587667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档