HTML5 manifest文件已被主流浏览器废弃,Chrome 94+完全移除支持,Firefox/Safari更早停用,不推荐任何在线工具生成或校验,因即使语法正确也静默失效;唯一有效替代方案是Service Worker+Cache API。

HTML5 的 manifest 文件已**被主流浏览器废弃**(Chrome 94+ 完全移除,Firefox/Safari 更早停用),**不推荐通过任何在线工具生成或校验**——因为即使生成正确,现代浏览器也不会执行缓存逻辑,控制台无提示、无报错、静默失效。
为什么在线工具“生成即失效”
Manifest 依赖服务器返回精确的 Content-Type: text/cache-manifest,而绝大多数在线工具:
- 只输出纯文本内容,不提供 MIME 类型配置能力
- 无法验证你部署后的服务器响应头是否合规(如 Nginx/Apache 是否真设置了该类型)
- 生成的文件若含 BOM、首行缩进、大小写错误(如
cache manifest),浏览器直接忽略 - 即使文件语法全对,Chrome 等已彻底移除
window.applicationCacheAPI,不再触发 install 或 update 流程
真正有效的替代方案:Service Worker + 离线清单校验
若目标是“资源更新可感知、离线可用、校验可靠”,应转向现代标准:
-
构建时生成指纹清单:用 Webpack/Rollup 输出
manifest.json(含文件名哈希,如{"app.js": "a1b2c3"}),部署到静态路径 - 前端加载时比对:fetch 远程 manifest → 对比 localStorage 中旧哈希 → 差异项触发 Cache API 更新
-
Service Worker 拦截控制:在
fetch事件中检查 URL 是否匹配清单项,按需返回缓存或网络响应 - 校验可自动化:用脚本比对构建产物文件内容 SHA-256 与清单值,CI 阶段失败即阻断发布
如果必须维护老系统(如定制 WebView)
仅限明确确认运行环境仍支持 AppCache(如 Android 4.4 内置 WebView):
立即学习“前端免费学习笔记(深入)”;
- 手写
app.appcache,首行严格为CACHE MANIFEST(无空格、无 BOM) - 所有路径用相对路径,与 HTML 同源;
NETWORK: *避免资源被意外拦截 - 用本地 Python/Node 服务启动(如
npx http-server -c-1禁用缓存),配合 Chrome 93 或更早版本测试 - 校验重点不是“格式对不对”,而是:Network 面板看 .appcache 响应头是否有
Content-Type: text/cache-manifest



















