1

我目前正在使用 Next.js 中的无头 WordPress 网站。我在国际化路由方面有点挣扎。我有 2 个与此问题相关的主页文件:

pages/[...slug].tsx 

在这个文件中,我使用 getStaticPaths 函数为我的 WordPress 数据库中的所有页面获取 GraphQL 数据。

pages/[locale]/Blog/[...slug].tsx 

在这个文件中,我使用 getStaticPaths 函数为我的 WordPress 数据库中的所有博客文章获取 GraphQL 数据。

我在 next.config 文件中配置了语言环境,如下所示:

i18n: {
    locales: ['da-DK', 'en-GB'],
    defaultLocale: 'da-DK',
  },

我很难找到一种方法来捕捉所有的博客文章。使用我当前的文件结构,我将捕获所有带有以下 URL 的博客文章:

siteName/en/blog/page-name

但不是具有以下结构的默认语言下的博客文章:

siteName/blog/page-name

我尝试使用 [[locale]] 但收到错误:

Error: Optional route parameters are not yet supported ("[[locale]]").

因此,似乎只能将包罗万象的路线设为可选。知道如何处理这样的事情吗?另一种方法可能是“加入”帖子和博客帖子的 2 个不同文件,然后在我需要对帖子或页面进行查询时使用一些条件逻辑进行排序。如果可能的话,我宁愿避免这种情况......

4

1 回答 1

0

我最终得到了一些条件逻辑来确定我是否应该从我的 CMS 中获取博客文章或页面数据。我一直在祈祷,稍后将在 Next.js 中实现可选路由参数 - 这肯定是一个更灵活的解决方案。

于 2021-07-13T11:21:03.267 回答