改版前应优先用开发者工具复制outerHTML保存渲染后DOM,而非curl保存原始HTML;curl仅适用于备份SSR或静态页的初始结构,无法获取JS动态内容。

直接保存原始 HTML 源码(curl 或浏览器“另存为”)只能拿到服务端返回的初始 HTML,不包含 JS 渲染后的真实 DOM;改版前若需保留用户实际看到的页面效果,必须用开发者工具复制 outerHTML。
用 curl 保存服务端原始 HTML 源码
适用于备份未执行 JS 的初始结构,比如 SSR 页面或静态站点。它反映的是服务器吐出的第一份 HTML,不含动态插入的内容。
- 命令行执行:
curl -o old-version.html https://example.com,会保存响应体原始字节,包括可能的 BOM 或编码声明 - 若目标页有反爬(如 403/406),需加
-H "User-Agent: Mozilla/5.0"模拟浏览器请求 - 注意:如果页面依赖
fetch或document.write动态生成关键区块,curl结果里这些位置是空的或只有占位符 - 不建议用
wget --page-requisites直接备份旧版——它会下载所有src/href资源,但路径可能是绝对 URL,离线打开时容易 404
用浏览器开发者工具保存渲染后 DOM
这是改版前最该做的一步:用户实际看到的页面,往往由 JS 补全。直接右键“查看源代码”看到的和用户看到的,可能完全不同。
- 打开旧版页面 →
F12→ 切到Elements面板 → 右键最外层<html>标签 →Copy→Copy outerHTML - 粘贴进 VS Code 或记事本,保存为
old-version-rendered.html,编码选UTF-8 - 此时文件包含所有已渲染的节点,但外部资源(CSS/JS/图片)仍靠网络加载;如需离线可用,得手动下载并改写
href和src为相对路径 - 别复制
body内容就完事——漏掉<head>里的meta、title、link,可能导致字符乱码或样式丢失
保存时最容易被忽略的三个点
很多人备份完双击打开发现空白、错位或控制台报错,问题通常出在这儿:
立即学习“前端免费学习笔记(深入)”;
-
<script src="https://cdn.example.com/app.js"></script>这类绝对路径在离线时完全失效,必须下载该 JS 文件到本地js/目录,并改成src="js/app.js" - 页面用了 Web Font(如
@import url(https://fonts.googleapis.com/css2?...)),离线后字体回退成系统默认,需提前下载 CSS 并替换为本地 font 文件引用 - 某些 CMS 或 SPA 页面会在 JS 中拼接 API 地址(如
fetch("/api/posts")),备份的 HTML 里虽无显式错误,但打开后控制台持续报 404 ——这不是 HTML 问题,而是你误以为“保存 HTML 就等于保存了整个页面”
真正可靠的旧版备份,不是单个 .html 文件,而是一个最小可运行目录:含 index.html、内联关键 CSS/JS(或本地化后的资源)、以及所有被 <img> 引用的图片。哪怕只差一个 favicon.ico,浏览器地址栏也可能显示异常图标——这种细节,在改版上线前对照检查一次,比上线后紧急回滚省力得多。



















