我正在使用 Vue 设置一个应用程序,并希望创建一个 API 服务,其中生产应指向 api.domain.com.br,而开发应指向 127.0.0.1:1337。
我的 API 使用 axios 发出如下请求:
axios.post('/api/v2/plan', plan)
Run Code Online (Sandbox Code Playgroud)
我的 vue.config.js 有一个这样的代理解决方案:
devServer: {
proxy: {
'/api': {
target: 'http://127.0.0.1:1337',
ws: true,
changeOrigin: true
},
}
},
Run Code Online (Sandbox Code Playgroud)
我可以从 axios 创建一个服务并在 api 上导入它:
import axios from 'axios';
const client = axios.create({
baseURL: 'https://api.domain.com.br'
});
export default client;
Run Code Online (Sandbox Code Playgroud)
但是它不适用于在 vue.config.js 上设置的开发代理
合成:
生产应用程序位于 app.domain.com.br
生产中的 Api 位于 api.domain.com.br
开发应用程序位于 127.0.0.1:8080
dev 上的 Api 位于 127.0.0.1:1337
当我构建这个应用程序时,它应该在 axios 调用上使用 api.domain.com.br。
LLa*_*Lai 11
我会使用一个带有基本 url 变量的 env 文件
.env.development
VUE_APP_BASE_URL=http://127.0.0.1:1337
Run Code Online (Sandbox Code Playgroud)
.env.生产
VUE_APP_BASE_URL=https://api.domain.com.br
Run Code Online (Sandbox Code Playgroud)
然后在你的 axios 中
const client = axios.create({
baseURL: process.env.VUE_APP_BASE_URL
});
Run Code Online (Sandbox Code Playgroud)
.env.development为命令vue-cli-service serve
.env.production自动加载 为命令自动加载vue-cli-service build
您还可以使用在 vue cli 项目中默认为 gitignored 的本地 .env 文件。有关更多信息,请参阅vue 的文档。
| 归档时间: |
|
| 查看次数: |
4423 次 |
| 最近记录: |