如何在没有 getStaticPaths 的情况下使用 Next.js 构建具有国际化路由 (i18n) 的动态路由?

How to build dynamic routes with internationalized routes (i18n) using Next.js without getStaticPaths?

我正在尝试寻找一种解决方案来构建简单的虚拟动态路由,使其具有类似以下内容的内容:/order/{productid}。

Next允许我们采取不同的策略,但为了实现我所需要的,我看到了两种可能性:

  1. 静态路径生成: 由于我有大约 1400 多种产品,静态生成只有在我可以使用 ISR 的情况下才有意义,所以我只能获取一些报价,而让其余的使用 ISR 逐步生成。不幸的是,我的用例不允许我使用 ISR,因为我在欧洲,而此功能创建的 lambda 在美国,这对我来说是一个限制。

  2. 基本动态路由: 我尝试 运行 使用动态路由的虚拟示例,但是当使用 i18n 设置执行此操作时,它会陷入无限循环。 我真的很努力地研究它,但没有发现任何有用的东西。

我尝试了什么? 我采用了这个示例 https://nextjs.org/docs/routing/dynamic-routes 并将 i18n 添加到文档示例中,以便我可以展示问题。

您可以在这里找到它:https://github.com/sergioviniciuss/next-dynamic-routing-i18n

拜托,欢迎任何想法。

这个问题实际上是因为我在我的 i18n 域配置中传递了端口。 对于本地主机,我还传递了端口,这导致了无限循环:

    domains: [
      {
        domain: 'localhost:3000',
        locales: [
          "de-DE",
          "de-AT",
          "en-US",
          "en-IE",
          "en-GB",
          "nl-NL",
          "es-ES",
          "fr-FR",
        ],
        defaultLocale: process.env.APP_LOCALE || "en-US",
        http: true,
      },
    ],

所以 domain: 'localhost:3000', 应该是 domain: 'localhost',

它就像一个魅力。