【问题标题】:How to set url in vue for a external backend api and a devserver api如何在 vue 中为外部后端 api 和 devserver api 设置 url
【发布时间】:2019-12-19 11:32:15
【问题描述】:

我正在使用 Vue 设置一个应用程序,并希望创建一个 API 服务,其中生产应指向 api.domain.com.br,而开发应指向 127.0.0.1:1337。

我的 API 正在使用 axios 发出这样的请求:

axios.post('/api/v2/plan', plan)

我的 vue.config.js 有这个代理解决方案:

  devServer: {
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:1337',
        ws: true,
        changeOrigin: true
      },
    }
  },

我可以从 axios 创建一个服务并在 api 上导入它:

import axios from 'axios';


const client = axios.create({
  baseURL: 'https://api.domain.com.br'
});


export default client;

但它不适用于 vue.config.js 上设置的开发代理

综合:

生产应用位于 app.domain.com.br

生产中的 API 位于 api.domain.com.br

开发版应用位于 127.0.0.1:8080

开发上的 API 位于 127.0.0.1:1337

当我构建这个应用程序时,它应该在 axios 调用上使用 api.domain.com.br。

【问题讨论】:

    标签: vue.js axios


    【解决方案1】:

    我会使用带有基本 url 变量的 env 文件

    .env.development

    VUE_APP_BASE_URL=http://127.0.0.1:1337
    

    .env.production

    VUE_APP_BASE_URL=https://api.domain.com.br
    

    然后在你的 axios 中

    const client = axios.create({
        baseURL: process.env.VUE_APP_BASE_URL
    });
    

    .env.development 会自动为命令 vue-cli-service serve 加载 .env.production 会自动为命令 vue-cli-service build 加载

    你也可以在 vue cli 项目中使用默认被 gitignored 的本地 .env 文件。有关详细信息,请参阅 vue's 文档。

    【讨论】:

    • 非常好的信息并且解释清楚......只有一个问题:你是否将这些文件 .env.development 和 .env.production 存储在你的 vue 项目的根目录中(如 vue.config.js) ? -- 更新 -- 忽略这个问题,在这里找到解决方案:medium.com/js-dojo/…
    • 另一个我找不到答案的更有效的问题:在上面的示例中..您是否删除了给定解决方案中 vue.config.js 中的信息(指 /api) ?而且...我有几乎相同的设置,除了我没有 axios 服务而且实际上不知道如何设置它:s
    • @George 在我的设置 axios 中查看来自 env 文件的基本 url。您在与 api 相关的 vue.config.js 中有什么?我以前没见过这个
    • 如何在我的组件中引用 VUE_APP_BASE_URL 来执行我的 axios 操作? this.axios.post(VUE_APP_BASE_URL, { action: 'loadCompanies' })
    • @George 我将 baseUrl 添加到 axios 配置 (github.com/axios/axios#global-axios-defaults) 中,类似于 axios.defaults.baseUrl = process.env.VUE_APP_BASE_URL。现在,当我调用 axios 方法时,我只需添加剩余的 url,这样axios.get('/items') 之类的东西就会调用 url https://mybaseurl.com/items
    猜你喜欢
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多