Next.js 使用 getStaticPaths 的 i18n 动态路由

Pri*_*ome 5 routes internationalization next.js

我定义了/pages/[news]/index.js这个getStaticPaths函数:

export const getStaticPaths = ({ locales }) => {
  return {
    paths: [
      { params: { news: 'news' }, locale: 'en' },
      { params: { news: 'novitta' }, locale: 'it' },
      { params: { news: 'noticas' }, locale: 'es' },
    ],
    fallback: false,
  }
}
Run Code Online (Sandbox Code Playgroud)

这给了我所需的所有路由到/pages/[news]/index.js文件:

  • /news -> 英文新闻页面
  • /it/novita -> 意大利新闻页面
  • /es/noticas -> 西班牙语

现在我想添加关于页面/pages/[about.js]

export const getStaticPaths = ({ locales }) => {
  return {
    paths: [
      { params: { about: 'about-us' }, locale: 'en' },
      { params: { about: 'chi-siamo' }, locale: 'it' },
      { params: { about: 'sobre-nosotros' }, locale: 'es' },
    ],
    fallback: false,
  }
}
Run Code Online (Sandbox Code Playgroud)

获取这些 URL:

  • /about-us -> 英文新闻页面
  • /it/chi-siamo -> 意大利新闻页面
  • /es/sobre-nosotros -> 西班牙语

但我收到此错误消息:无法重新加载动态路由:错误:您不能对同一动态路径使用不同的 slug 名称 ('page' !== 'blog')

我确实明白问题是什么,但是我该如何解决这种路由呢?