0

我目前正在开发一个 next.js 应用程序,到目前为止一切顺利,一切正常,但我的客户想要一个我很难实现的功能。

所以该站点位于 mysite.com 和 mysite.com/cars、mysite.com/vehicles 等路线

现在我的客户想要一个基于访问者国家的动态子路径,例如 mysite.com/us/cars 或 mysite.com/uk/cars 或 mysite.com/ng/cars

我已经在 next.js 10 中尝试了新的 i18n 功能,但似乎它只适用于用户的区域设置(语言)。

有没有办法可以以编程方式执行此操作,或者我应该将其留给 DevOps 部署到子文件夹?

4

1 回答 1

1

您可以使用动态路由来完成此操作。

https://nextjs.org/docs/routing/dynamic-routes

您需要做的是调整以[locale]在目录结构中有一个文件夹,因此您的页面变为:

pages/[locale]/carspages/[locale]/vehicles

然后,您可以使用

const router = useRouter();
const locale = router.query.locale;

确定如何检索内容。如果您需要静态生成所述语言环境,您也可以通过放置

getStaticPaths在您的页面中发挥作用

https://nextjs.org/docs/basic-features/data-fetching#getstaticpaths-static-generation

现在,如果你要问如何根据他们当前的国家动态路由,即一旦他们登陆顶级页面就重定向,那是一个完全不同的游戏。

于 2020-11-17T02:35:01.653 回答