Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 删除Web包代理中匹配的“/api”路径_Webpack_Webpack Dev Server_Node Http Proxy - Fatal编程技术网

Webpack 删除Web包代理中匹配的“/api”路径

Webpack 删除Web包代理中匹配的“/api”路径,webpack,webpack-dev-server,node-http-proxy,Webpack,Webpack Dev Server,Node Http Proxy,我有一个后台服务正在运行。所有以/api/*开头的调用都应转发给它,前面不带/api。所以当我打电话给http://localhost:8080/api/my/route它应该代理http://localhost:9090/my/route 如果我使用以下选项: proxy : [{ path : '/api/*', target : 'http://localhost:9090' }] 调用http://localhost:8080/api/my/route,后端服务抱怨找不到路由/

我有一个后台服务正在运行。所有以
/api/*
开头的调用都应转发给它,前面不带
/api
。所以当我打电话给
http://localhost:8080/api/my/route
它应该代理
http://localhost:9090/my/route

如果我使用以下选项:

proxy : [{
  path : '/api/*',
  target : 'http://localhost:9090'
}]
调用
http://localhost:8080/api/my/route
,后端服务抱怨找不到路由
/api/my/route

文档建议我可以使用中的任何选项,但我无法找到正确的选项


我需要使用哪些选项来获得所需的结果?

编辑的对于版本编辑的对于版本从webpack dev server version>=1.15.0开始,您可以使用文档中的:


从webpack dev server version>=1.15.0起,您可以使用记录在案的:


非常感谢,它很有效!这在网页包dev服务器文档中有记录吗?很好。我通过搜索文档中没有的代码找到了这一点。警告在github上查看了webpack dev server代码的主版本后,我认为在下一个版本中不支持“重写”功能。我将使用旁路函数编辑答案,因为我已经将
重写添加到了。由于bypass已经将响应作为参数传递给注册的处理程序,我不确定bypass应该如何修改请求。你是对的。。。我已经意识到“绕道”是没有用的。我认为“绕过”只有在你想完全绕过特定模式上的代理功能时才有用……看起来重写选项被pathRewrite选项取代了——至少它被文档中的人踢了出来。我接受@Aprillion的答案,以帮助为未来的问题解决者找到最佳答案。非常感谢,这很有效!这在网页包dev服务器文档中有记录吗?很好。我通过搜索文档中没有的代码找到了这一点。警告在github上查看了webpack dev server代码的主版本后,我认为在下一个版本中不支持“重写”功能。我将使用旁路函数编辑答案,因为我已经将
重写添加到了。由于bypass已经将响应作为参数传递给注册的处理程序,我不确定bypass应该如何修改请求。你是对的。。。我已经意识到“绕道”是没有用的。我认为“绕过”只有在你想完全绕过特定模式上的代理功能时才有用……看起来重写选项被pathRewrite选项取代了——至少它被文档中的人踢了出来。我接受@Aprillion的答案,以帮助未来的问题解决者找到最佳答案
proxy : [{
  path : '/api/*',
  target : 'http://localhost:9090',
  // bypass
  rewrite: function(req, options) {
    // manipulate req here 
    // in your case I think it's removing the /api part of url
  }
  // 
}]
proxy: {
  '/api': {
    target: 'https://other-server.example.com',
    pathRewrite: {'^/api' : ''}
  }
}