NextJS 基本路径路由 - 在不使用基本路径的情况下是否在链接前加上文件夹名称?

问题描述

我知道如果您不想在根域级别托管应用程序,您可以使用 NextJS 的 basepath 功能将您的 NextJS 应用程序托管在您域的特定目录中。

我们正在尝试在 https://oursite.com/app 之类的地方托管我们的应用程序。根域 (https://oursite.com) 是一个营销网站,它构建在一个完全不同的框架上,并运行在一个完全不同的 Docker 实例上。我们的网络团队已将所有流向 https://oursite.com/app 的流量转发到我们的 NextJS K8 pod / Docker 实例。

只要我们直接在浏览器中输入 URL,这就会起作用 - 即。通过在 URL 栏中输入这些 URL 转到 https://oursite.com/app/abouthttps://oursite.com/app/contact。但是无论何时您点击我们应用程序中的任何链接重定向 URL 都是不正确的。

在我的本地开发环境中,单击链接会正确地将我定向到诸如 http://localhost:3000/about 之类的内容。但是点击我们实际环境中的链接会将我带到https://oursite.com/about。我应该到https://oursite.com/**apP**/about

这是可以使用 NextJS 的 basepath 功能的地方。如果我将 basepath 变量设置为相同的值,则嵌入到我的任何页面中的任何链接都会自动附加 /app。不幸的是,这对我们不起作用,因为我们的网络路由会将所有流向 https://oursite.com/app 文件夹的流量定向到独立的 K8 pod/Docker 实例。

当我将基本路径设置为 /app 时,我在访问 https://oursite.com/app 时收到 404 错误。我假设这是因为 NextJS 无法了解自己正在运行的 K8 pod 之外的环境。它不在 https://oursite.com 上运行,也不知道流向 https://oursite.com/app 的流量确实被定向到其根域。

在这种情况下,如何在不使用基本路径功能的情况下让 NextJS 在所有页面重定向添加 /app

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)