我正在使用Next.js
和Axios
库。
我的 axios 请求如下所示:
axios.get('/api/users/1')
当我在同一个实例中拥有 API 和渲染服务器时,这很有效。但现在我的 API 后端完全分离了。
在开发模式下,它托管在localhost:3001
前端(下一个)开发服务器托管在localhost:3000
. 在生产中,渲染服务器托管在,https://example.com
而 API 托管在https://api.someoherdomain.com
.
如何保持 axios 请求干净(无需手动导入内容和为 url 字符串添加前缀),保持它们一样,/api/users/1
但localhost:3000/api/users/1
在运行开发模式和https://example.com/api/users/1
托管在生产中时自动生成它们。
我需要像https://github.com/zeit/next.js/tree/master/examples/with-custom-reverse-proxy这样的东西,但要同时在生产和开发模式下工作。
不是推荐的生产规模方法(因此显式开发标志),因为我们应该将代理范围作为 UI 应用程序之外的范围,并有单独的 Web 服务器来处理它。
如果这是不可能的,我正在寻找最优雅的方式来处理这个问题。有什么建议么?
在生产中,我们使用 Plesk(使用 Ngnix)。