如何在Chrome Overrides中同时覆盖根路径与子路径?
解决Chrome DevTools同时覆盖两个冲突API请求的方法
你的问题核心是Chrome DevTools的本地覆盖依赖本地文件系统,而操作系统不允许同一路径下存在同名的文件和目录——projects没法同时作为列表请求的覆盖文件,又作为带ID请求的父目录。下面给两个可行的解决办法:
方法一:用Network面板的Rewrite规则(推荐,最省事)
- 打开Chrome DevTools,切到「Network」面板
- 点右上角三个点,选「Rewrite」
- 点「Add」新建一个规则集
- 添加第一条规则(覆盖列表请求):
- 匹配URL:填
*/app/api/projects(如果要精确匹配,就写完整域名比如https://your-domain.com/app/api/projects) - 替换URL:填你自定义列表的路径,比如
*/projects(或者本地文件的绝对路径,比如file:///Users/xxx/custom-data/projects.json)
- 匹配URL:填
- 添加第二条规则(覆盖带ID的请求):
- 匹配URL:用正则匹配动态ID,比如
^https://your-domain.com/app/api/projects/(\d+)$ - 替换URL:填
https://your-domain.com/projects/$1(或者本地文件路径file:///Users/xxx/custom-data/projects/$1.json,$1会自动替换成匹配到的ID)
- 匹配URL:用正则匹配动态ID,比如
- 勾选启用这个规则集,刷新页面就能同时生效两个请求的覆盖
方法二:本地覆盖+自定义文件名绕开冲突
如果一定要用本地覆盖功能,可以绕开同名限制:
- 先处理带ID的请求:在Sources面板找到
/app/api/projects/1的请求,右键选「Override content」,在本地覆盖目录里生成app/api/projects/1文件,写入自定义对象内容 - 手动在本地覆盖目录里创建
app/api/projects_list文件,写入你的自定义列表内容 - 再用上面的Rewrite规则,把
/app/api/projects的请求重定向到/app/api/projects_list,这样既保留了带ID请求的本地覆盖,又能让列表请求返回自定义内容
内容的提问来源于stack exchange,提问作者Ronny Efronny
相关产品推荐
相关产品推荐

