[英]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。
npm run start
to next start -H 0.0.0.0 -p ${PORT:-8080}
。basePath: process.env.BASE_PATH
添加到 next.config.jsconst 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.