如何在生产中的Vue.js中代理URL调用?

时间:2018-10-13 02:09:49

标签: vue.js webpack proxy

在开发人员中,我有本地vue.js项目和一个开发服务器。我遵循了该指南:

http://vuejs-templates.github.io/webpack/proxy.html

设置proxyTable,以便每当我使用Axios对开发服务器进行 REST 调用时,它将重定向到我的开发服务器,而不是vue URL。

当我部署到产品时,我的vue构建包将部署到S3,其余服务器在 EBS 中。它们位于不同的子域中。因此,我的Vue还需要为所有 REST 调用设置代理。但是,vuejs&webpack不允许在build部分下的配置文件中使用proxyTable。处理此问题的最佳方法是什么?

我的配置:

module.exports = {
  build: {
    env: 'prod',
    productionSourceMap: true,
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/api': {
       logLevel: 'info',
       target: 'http://myRestServer.com/...',
       changeOrigin: true,
       pathRewrite: {
         '^/api': '/'
       }
      }
    }, 
  },
 dev: {
   proxyTable: {
     '/api': {
      logLevel: 'info',
      target: 'http://127.0.0.1:3005',
       changeOrigin: true,
      pathRewrite: {
         '^/api': '/'
      }
    }
  },
}

1 个答案:

答案 0 :(得分:0)

也许您应该改用devServer。而对于build,我想现在有了另一个名字。

例如:

module.exports = {
  devServer: {
   // your settings
  }
}

例如:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: '<url>',
        ws: true,
        changeOrigin: true
      },
      '/foo': {
        target: '<other_url>'
      }
    }
  }
}

参考:vue-cli