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



我正试图找到一种解决方案,用于构建简单的虚拟动态路由,以具有类似于:/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域配置中传递了端口。对于localhost,我还传递了端口,这导致了一个无限循环:

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',而不是domain: 'localhost:3000',

它就像一种魅力。

最新更新