首页 > 解决方案 > Next.js 具有 i18n 和共享组件的多区域

问题描述

我将 Next.js 的多区域功能与博客和 Web 应用程序一起使用,因此我可以独立开发和部署这两个应用程序。按照他们的with zone 示例进行设置很容易,我已经在 port 设置了一个博客应用程序,在 port 设置了4200一个 web 应用程序3000,这工作正常。不幸的是,我遇到了一些在他们的文档中没有描述的问题(据我所知)。

首先,我还使用了他们的国际化路由,它运行良好,但是当转到我的博客应用程序时,它会将语言环境附加到 URL 的末尾。想象一下我打开localhost:3000/en并导航到博客应用程序,然后它将显示localhost:4200/blog/en而不是localhost:4200/en/blog. 有没有办法解决这个问题(例如通过使用重写)?

其次,我在一个 monorepo 中工作,并且在两个应用程序之间共享组件,例如页眉和页脚,这显然包括导航。当我在博客上并想要导航到例如/about页面时,它显然会导航到localhost:4200/blog/about而不是localhost:3000/about. 一种解决方案是检查导航组件中的基本路径,然后将基本路径localhost:3000添加到hrefifblog之前,但这会刷新整个应用程序并且不会导致流畅的导航,因此它并不是很理想。我还能做些什么吗?

似乎多区域功能实际上只适用于非常小的应用程序,或者我错过了一些东西。似乎其他人也有同样的问题,如果我遗漏了什么,那么文档肯定至少是。

标签: javascriptreactjsnext.jsinternationalizationmonorepo

解决方案


推荐阅读