在开发和生产环境中自动代理 AJAX 个请求

Automatically proxy AJAX requests in both development and production environments

我正在使用 Next.jsAxios 库。

我的 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 的东西,但要在生产和开发模式下工作。

Not a recommended approach to production scale (hence explicit dev flag) as we should scope proxy as outside UI applications and have separate web server taking care of that.

如果这不可能,我正在寻找最优雅的方式来处理这个问题。有什么建议吗?

在生产中我们使用 Plesk(它使用 Ngnix)。

您可以创建一个 axios 实例并根据环境变量设置 baseUrl 参数 :) 此处的文档:https://github.com/mzabriskie/axios#creating-an-instance