1

我有一个使用 quasar 制作的项目,我有一个代理,可以将应用程序上的调用映射到我的后端 API,但是当它使用它构建时会quasar build生成dist文件夹,如果它可以工作,我会使用服务器进行测试,但应用程序发出的调用不工作 在此处输入图像描述

这应该打电话给http://localhost:8080/getCategories

这是代理配置:

proxyTable: {
  '/api': {
    target: 'http://localhost:8080/',
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }
}

当我使用开发服务器尝试时,开发服务器运行在8081 在此处输入图像描述

我不知道我是否必须更改 API 调用,我所做的所有调用都像是this.$http.get('/api/getCategories')一个示例。

不知道我解释清楚了吗,希望有人能帮忙,谢谢!

4

1 回答 1

1

解决了

我已经解决了这个问题,不知道这是否正确,将尝试为可能遇到相同问题的其他人解释。

首先,我从 中删除了 proxyTable config/index.js,然后添加了一个环境,其中一个config/dev.env.js看起来像这样:

var merge = require('webpack-merge')
var prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  API: "'http://localhost:8080'"
})

一个config/prov.env.js看起来像这样:

module.exports = {
  NODE_ENV: '"production"',
  API: "'http://my-website.com:8080'"
}

然后我在 VueResource 中使用的所有 AJAX 调用如下所示:

this.$http.get(`${process.env.API}/path/`)
    .then(response => response.json(), console.log)
            .then(response => {
                 console.log(response)
            })

完全为我工作,希望有人觉得这很有用!

于 2018-03-03T23:37:43.660 回答