manifest属性已彻底废弃,浏览器完全忽略且不发起请求;Service Worker是唯一离线缓存方案,需HTTPS/localhost、预缓存资源并正确处理fetch事件。

manifest 属性在当前(2026年8月)完全不可用,配置它不会触发任何缓存行为,也不会报错——浏览器直接跳过解析,静默忽略。
manifest 属性已从所有主流浏览器中彻底删除
- Chrome 95+、Firefox 85+、Safari 16.4+ 均已移除 Application Cache 实现
-
window.applicationCache返回undefined - DevTools 的 Application 面板里“Manifest”选项卡消失,只剩 Service Workers
- 即使你写
,浏览器连对cache.appcache的 HTTP 请求都不会发出去
这不是 MIME 类型没配对、路径写错、或服务器没加 AddType text/cache-manifest .appcache 的问题——是底层代码被删干净了。你调用 applicationCache.update() 会直接抛 TypeError,因为 API 已不存在。
Service Worker 是唯一可行的离线缓存路径
必须用 sw.js + caches.open() + fetch 事件实现,且满足硬性前提:
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
- 页面必须通过
https://或@#@#@#@#@#@#@#@#@#@0提供(file://不支持注册) - 注册代码要放在主页面 JS 中,不能在 ES 模块里直接调用
navigator.serviceWorker.register() -
sw.js必须监听install事件并调用cache.addAll()预缓存资源 - 必须监听
fetch事件,用event.respondWith()显式返回缓存或网络响应 -
/offline.html这类降级页,必须提前列入urlsToCache,且自身不能引用未缓存的外部资源
容易踩的坑:残留 manifest 会干扰判断
- 删掉所有
,否则开发者工具可能显示“有 manifest 但未生效”,误导你去查服务器配置 - 清理服务器上所有
AddType text/cache-manifest .appcache类配置,避免日志污染和误判 - 不要试图“兼容旧版”——AppCache 和 Service Worker 机制互斥,无法共存或降级切换
真正要让页面断网后 fallback 到 /offline.html,关键不是写对某个 HTML 属性,而是确保 sw.js 在 install 阶段把那个 HTML 及其依赖的 CSS/JS/图片全部塞进缓存,并在 fetch 里写对兜底逻辑。首次访问必然走网络,这是设计使然,没法绕过。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










