离线访问 (PWA)
Methanol 内置 PWA 支持,配备自定义 Service Worker 及自动生成的预缓存清单。关键资源将在安装阶段优先缓存,其余内容则在后台进行版本感知的增量更新。
启用 PWA
在 methanol.config.js 中启用:
export default () => ({
pwa: true
})
自定义 Manifest
你可以按需自定义 PWA Manifest 与预缓存策略:
export default () => ({
pwa: {
manifest: {
name: 'My Site',
short_name: 'My Site'
},
precache: {
include: ['**/*.{html,js,css,ico,png,svg,webp,jpg,jpeg,gif,woff,woff2,ttf}'],
exclude: ['**/*.map', '**/pagefind/**']
}
}
})
预缓存配置说明:
priority: 优先缓存的 glob 模式列表(将被移至清单前部)。limit: 预缓存清单的最大条目数限制。batchSize: Service Worker 在安装/预热时的并发请求数量。
进阶配置
如需完全掌控 PWA 生命周期(例如自定义 Service Worker 策略),请设置 pwa: false 并自行提供 Manifest 和 Service Worker。
自定义离线页面
创建 pages/offline.mdx 可定义离线且无缓存时的回退页面;pages/404.mdx 用于定义未找到页面。两者默认均从导航中排除。