通过 public http 路由 returns 请求 Next.js Web 服务在 Digital Ocean App Platform 上出现 404 错误

Requesting Next.js web service through public http route returns 404 error on Digital Ocean App Platform

问题

我正在使用 Strapi 网络服务组件 作为 CMS 和 Next.js 网络服务组件 作为前端。 Strapi 可通过 /api 路线和 /sporus 路线 Next.js 访问。根据 运行time 日志,构建和部署均成功且未显示任何错误。当我尝试通过路由 /sporus 访问我的 Next.js 网络服务时,我遇到了 404 屏幕。 /api 上的 Strapi 正在运行,包括管理面板和请求。

目标

Next.js Web 服务可通过 /sporus 路由访问,而不是 return 404。

我试过的

文件

next.config.js

const domains = (process.env.APP_URL) ? [process.env.APP_URL] : ['localhost'];

module.exports = {
  reactStrictMode: false,
  images: {
    domains: domains,
  },
  basePath: process.env.BASE_PATH,
}

环境变量

应用范围:

- key: STRAPI_URL
  scope: RUN_AND_BUILD_TIME
  value: ${APP_URL}/api
- key: NEXT_PUBLIC_STRAPI_URL
  scope: RUN_AND_BUILD_TIME
  value: ${APP_URL}/api
- key: DATABASE_URL
  scope: RUN_AND_BUILD_TIME
  value: ${db.DATABASE_URL}
- key: APP_URL
  scope: RUN_AND_BUILD_TIME
  value: ${APP_URL}

下一个具体的:

key: NEXT_URL
    scope: RUN_AND_BUILD_TIME
    value: ${APP_URL}/sporus
  - key: BASE_PATH
    scope: RUN_AND_BUILD_TIME
    value: /sporus

N.B.

我对 D.G 的经验很少。 App Platform & Next.js 或一般部署 node.js 服务器。我的大部分项目都是在 运行 本地进行的,所以如果这个问题描述性不强,我深表歉意。欢迎所有额外的调试步骤或一般提示。

所以解决方法很简单。这是一个 'double route' 问题。 Digital Oceans 应用程序平台路由到 next.js 网络服务,但 next.js 没有看到此请求。 Next.js 将在路线顶部添加 baseUrl。我的网络服务在 /sporus/sporus 上可用,而不仅仅是 /sporus

通过将 baseUrl 设置回默认值,问题已解决。