必须将置于中、使用根目录绝对路径href、服务端返回正确Content-Type响应头,三者缺一不可;推荐用manifest.webmanifest后缀并配application/manifest+json类型。

在 HTML5 中通过 <link> 引入 Manifest 文件,是实现 PWA(渐进式 Web 应用)安装和离线能力的关键一步。核心不是“能不能加”,而是标签是否合规、路径是否正确、服务端是否配合——三者缺一不可。
必须放在 里,且不能动态插入
浏览器只在初始 HTML 解析阶段扫描 <link rel="manifest">,一旦页面开始渲染或 JS 执行后添加,完全无效。
- ✅ 正确:写在
内,紧贴<meta charset>和<meta name="viewport">后面 - ❌ 错误:塞进
;用document.createElement动态创建;在 Vue 的mounted或 React 的useEffect里插入
href 必须是根目录绝对路径
路径必须以 / 开头,指向服务器根路径下的文件,不是相对于当前 HTML 文件的位置。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- ✅ 正确:
<link rel="manifest" href="/manifest.json">(部署在根域) - ✅ 正确:
<link rel="manifest" href="/myapp/manifest.json">(部署在子路径) - ❌ 错误:
href="manifest.json"、href="./manifest.json"、href="static/manifest.json"—— 这些在部署后大概率 404
服务端要返回正确的响应头
浏览器加载 manifest.json 时,要求 HTTP 状态码为 200,且响应头中必须包含:
立即学习“前端免费学习笔记(深入)”;
-
Content-Type: application/manifest+json(推荐使用.webmanifest后缀) - 或
Content-Type: application/json(若坚持用.json后缀) - Nginx/Apache 需手动配置 MIME 类型;Vercel/Netlify 默认支持,但 Node.js/Python 自建服务常遗漏
- 验证方式:直接访问
https://yoursite.com/manifest.json,看 Network 面板的响应头是否达标
文件名与后缀也有讲究
虽然 manifest.json 和 manifest.webmanifest 都可被识别,但兼容性不同:
-
manifest.webmanifest是现代标准,Chrome/Edge/Firefox 默认优先识别,MIME 更明确 - iOS Safari 16.4+ 才支持
.webmanifest;旧版 Safari 只认manifest.json - 如果兼顾新老设备,可同时提供两个文件,并在
<link>中指向manifest.json(保底)


















