尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Fiddler 抓包工具,把测试环境的静态资源请求转发到本地服务,调试前端代码

Fiddler 抓包工具,把测试环境的静态资源请求转发到本地服务,调试前端代码 Fiddler 抓包工具把测试环境的静态资源请求转发到本地服务调试前端代码AI 说明这是一个非常经典且高效的前端调试场景利用 Fiddler 的AutoResponder自动响应功能你可以轻松实现将测试环境或生产环境的静态资源如 JS、CSS、图片“劫持”并替换为本地文件从而在不重新部署服务器的情况下快速验证代码修复。以下是具体的操作步骤和技巧 核心步骤使用 AutoResponder 进行转发这是最直接、最常用的方法适用于单个或特定文件的替换。1. 开启抓包并定位请求启动 Fiddler确保左下角显示Capturing正在抓包。在浏览器中访问你的测试环境页面触发你需要调试的静态资源加载。在 Fiddler 左侧的会话列表中找到对应的请求通常是.js,.css,.png等。小技巧如果请求太多可以在右上角的Filters过滤器选项卡中勾选Use Filters并在Hosts区域输入测试环境的域名只显示相关流量。2. 配置转发规则选中你刚才找到的那个静态资源请求。点击右侧面板的AutoResponder标签页。勾选顶部的两个选项Enable rules启用规则开启自动响应功能。Unmatched requests passthrough未匹配请求通过非常重要勾选后除了你配置的规则外其他请求如 HTML、接口数据会正常访问网络不会受影响。点击工具栏上的Add Rule添加规则按钮。3. 设置匹配与替换此时你会看到规则编辑器中出现了两行输入框第一行匹配规则默认是EXACT:你的请求URL。为了更灵活建议去掉EXACT:前缀只保留文件名的后缀例如/js/main.js或者使用正则表达式以regex:开头来匹配带版本号的资源如regex:(?insx).*main\.js.*。第二行替换目标这里填写你本地文件的路径。你可以直接输入路径例如C:\Users\YourName\Project\dist\js\main.js。也可以点击右侧的...按钮选择文件或者选择*respond with...来模拟特定的 HTTP 状态码如 404 或 500。4. 保存并验证点击Save保存规则。回到浏览器强制刷新页面CtrlF5 或 CmdShiftR清除缓存。观察 Fiddler你会发现该静态资源的请求状态码变成了200或304且响应内容已经变成了你本地的文件内容。 进阶技巧1. 批量转发同域名下所有资源如果你需要将整个测试环境的静态资源目录都映射到本地例如前端构建后的整个dist目录在Rule Editor的第一行输入测试环境静态资源的基础路径例如http://test-env.com/static/。在第二行输入本地对应的文件夹路径例如C:\Project\dist\。Fiddler 会自动根据相对路径去本地文件夹查找文件。2. 解决跨域或 Token 问题有时候转发到本地后可能会遇到跨域CORS问题或鉴权问题。你可以在 Fiddler 中修改响应头在AutoResponder界面下方或者使用Rules-Customize Rules。在OnBeforeResponse函数中添加代码动态添加响应头if(oSession.oResponse.headers.Exists(Content-Type)){// 添加允许跨域的头部oSession.oResponse.headers[Access-Control-Allow-Origin]*;}或者在Filters选项卡中勾选Set response header来手动添加头部。3. 使用正则匹配版本号很多项目打包后的文件名带有哈希值如app.a1b2c3.js每次构建都会变。使用正则匹配regex:.*app.*\.js这样可以确保无论文件名中间的哈希值怎么变都能匹配到你本地的最新文件。 总结对照表步骤关键操作注意事项1. 抓包访问测试环境找到目标 JS/CSS善用Filters过滤域名2. 开启勾选Enable rules和Unmatched requests passthrough必须勾选“Passthrough”以免影响其他请求3. 匹配输入 URL 规则建议去掉EXACT:或使用regex:提高兼容性4. 替换输入本地文件绝对路径确保本地文件已保存且路径正确5. 验证浏览器强制刷新检查 Fiddler 中响应体是否已变更通过这种方式你可以实现“本地修改代码 - 保存 - 浏览器刷新 - 验证”的极速闭环无需等待测试环境重新部署。
返回列表