如何在没有 getStaticPaths 的情况下使用 Next.js 构建具有国际化路由 (i18n) 的动态路由?
How to build dynamic routes with internationalized routes (i18n) using Next.js without getStaticPaths?
我正在尝试寻找一种解决方案来构建简单的虚拟动态路由,使其具有类似以下内容的内容:/order/{productid}。
Next允许我们采取不同的策略,但为了实现我所需要的,我看到了两种可能性:
静态路径生成:
由于我有大约 1400 多种产品,静态生成只有在我可以使用 ISR 的情况下才有意义,所以我只能获取一些报价,而让其余的使用 ISR 逐步生成。不幸的是,我的用例不允许我使用 ISR,因为我在欧洲,而此功能创建的 lambda 在美国,这对我来说是一个限制。
基本动态路由:
我尝试 运行 使用动态路由的虚拟示例,但是当使用 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',
它就像一个魅力。
我正在尝试寻找一种解决方案来构建简单的虚拟动态路由,使其具有类似以下内容的内容:/order/{productid}。
Next允许我们采取不同的策略,但为了实现我所需要的,我看到了两种可能性:
静态路径生成: 由于我有大约 1400 多种产品,静态生成只有在我可以使用 ISR 的情况下才有意义,所以我只能获取一些报价,而让其余的使用 ISR 逐步生成。不幸的是,我的用例不允许我使用 ISR,因为我在欧洲,而此功能创建的 lambda 在美国,这对我来说是一个限制。
基本动态路由: 我尝试 运行 使用动态路由的虚拟示例,但是当使用 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',
它就像一个魅力。