繁体   English   中英

通过公共 http 路由请求 Next.js web 服务在数字海洋应用平台上返回 404 错误

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

问题

我正在使用Strapi web 服务组件作为 CMS 和Next.js web 服务组件作为前端,在 Digital Ocean 上设置应用程序平台。 Strapi 可以通过/api/sporus sporus 上的 Next.js 访问。 根据运行时日志,构建和部署都成功并且没有显示错误。 当我尝试通过路由/sporus sporus 访问我的 Next.js web 服务时,我遇到了 404 屏幕。 /api上的 Strapi 正在工作,包括管理面板和请求。

目标

Next.js Webservice 可以通过/sporus sporus 路由访问,并且不返回 404。

我试过的

  • 根据Digital Ocean 教程视频的两个指南设置npm run start to next start -H 0.0.0.0 -p ${PORT:-8080}
  • 根据Next.js 文档basePath: process.env.BASE_PATH添加到 next.config.js
  • 检查 Next.js 是否在创建应用平台时提供的标准域而不是自定义域上提供服务。

文件

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

注意

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM