webpack-dev-server代理无法正常工作

时间:2017-07-17 18:10:15

标签: reactjs webpack webpack-dev-server http-proxy-middleware

我的应用程序使用Python后端,因此当我在本地运行时,我需要将我的请求代理到不同于Webpack运行的端口。

我尝试了几种不同的方法来完成这项工作:

devServer: {
  contentBase: outDir,
  proxy: [
    {
      path: "**",
      target: "http://localhost:8000",
      secure: false,
      bypass: function(req, res, options) {
        if(req.url === '' || req.url === '/') {
          res.statusCode = 302;
          res.setHeader('Location', '/a/');
          return '/a/';
        }

        var frontend = new RegExp("^\/$^|\/a\/index\.html|^\/a\/|^\/a$|^\/styleguide");
        if (frontend.test(req.url)) return req.url;
      }
    }
  ],
  // serve index.html for all 404 (required for push-state)
  historyApiFallback: true,
},

而且:

proxy: [{
  context: '/',
  target: 'http://localhost:8000',
}],

这两者在启动时至少会显示与此类似的消息:[HPM] Proxy created: ** -> http://localhost:8000。当我查看文档并执行类似的操作时,它也无法工作(我甚至不会收到有关代理运行的消息):

proxy: {
  "/": "http://localhost:8000"
}

有什么明显的事情我做错了吗?我一直在尝试我能想到的每一种组合,以使其发挥作用。

1 个答案:

答案 0 :(得分:1)

尝试添加changeOrigin: true。别忘了改变API模式。

proxy: {
  '/api/**': {
    target: 'http://localhost:8000',
    secure: false,
    changeOrigin: true
  },
}