You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular代理配置中如何通过正则捕获实现路径重写?

Angular代理动态路径重写实现方案

Angular 开发服务器的代理底层基于http-proxy-middleware实现,本身支持正则分组捕获和动态重写逻辑,可以实现和Nginx命名捕获等效的效果,以下是两种常用配置方案:

方案1:JS格式代理配置(推荐,灵活性更高)

新建proxy.conf.js文件,写入以下内容:

module.exports = {
  '/xxx/api/objects/*/file/*.xml': {
    target: 'http://localhost:4400',
    changeOrigin: true,
    // 开启调试可以查看重写后的路径,调试完成可删除
    logLevel: 'debug',
    pathRewrite: (path) => {
      // 方式1:直接拆分路径取最后一段文件名,逻辑简单
      const fileName = path.split('/').pop();
      return `/${fileName}`;

      // 方式2:正则捕获实现,和Nginx命名捕获逻辑完全对应
      // const reg = /\/xxx\/api\/objects\/([^/]+)\/file\/([^/]+\.xml)/;
      // const match = path.match(reg);
      // return `/${match[2]}`;
    }
  }
}

方案2:JSON格式代理配置

新建proxy.conf.json文件,写入以下内容:

{
  "^/xxx/api/objects/([^/]+)/file/([^/]+\\.xml)$": {
    "target": "http://localhost:4400",
    "changeOrigin": true,
    "logLevel": "debug",
    "pathRewrite": {
      "^/xxx/api/objects/([^/]+)/file/([^/]+\\.xml)$": "/$2"
    }
  }
}

生效配置

修改angular.json中项目的开发服务配置,指定代理文件路径:
在projects.项目名.architect.serve.options下添加:

  • JS配置:"proxyConfig": "proxy.conf.js"
  • JSON配置:"proxyConfig": "proxy.conf.json"

修改完成后重启Angular开发服务即可生效。


内容的提问来源于stack exchange,提问作者Anton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:36:00