比方说,我正在开发一个具有多种微服务的平台,Nuxt前端服务就是其中之一。 我在nuxt中间件(同时在服务器和客户端中运行)中使用Axios。 在nuxt服务内部,API baseURL是本地计算机中的内部调用,但是从客户端来看,baseURL是当然的公共应用程序域。
我可以使用服务器的请求对象或配置文件来解决它,或者区分运行环境。 我提到的每个选项都可以使用,但是现在我正在寻找针对不同客户端环境和服务器环境变量的最佳实践。
中间件文件:
import axios from 'axios'
export default function ({ route }) {
return axios.get('api/some-data');
}
来自服务器的请求应调用“ http://internal-service:SOME_PORT/api/some-data。
客户的请求应调用“ http://my-domain.com/api/some-data”。
答案 0 :(得分:4)
我在写问题时找到了答案。
在 nuxt.config.js 文件中:
axios: {
baseURL: 'http://internal-service:5000',
browserBaseURL: 'http://my-domain.com' //can use environment variables to fill both..
},