progressive-web-apps - Angular6 ServiceWorker 不缓存所有文件
问题描述
我生成了一个干净的 Angular6 项目并使用ng add @angular/pwa
我得到了这个ngsw-config.json
:
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js"
]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
}
]
}
整个资产文件夹都标记为“Service Worker Caching”,但可悲的现实表明这不是真的:
我使用的 3 个图形文件 ( header-bg.jpg
, list-border-red.svg
& list-border-green.svg
) 被标记为“来自 ServiceWorker” 但是当我在智能手机上创建应用程序并断开 Internet 连接并打开应用程序时,仅header-bg.jpg
可用。但是list-border-red.svg
&list-border-green.svg
不能离线使用。
还显示了从“磁盘缓存”加载 2 个图标和从 ftp 加载一个的图形...这些文件也在资产文件夹中,为什么它们没有从 mServiceWorker 缓存?ServiceWorker 的东西是否可能在 Chrome 中被窃听?
该应用程序已经在线,可以在这里找到:https ://expense-calculator.com/如果您需要它来重现我的问题,只需打开并进行自己的测试。
解决方案
您的服务工作者代码看起来不错,并且已完美注册,可以像您预期的那样离线提供文件。我已经在飞行模式下检查了 Chrome。所有文件,包括从缓存加载的 .svg 文件。
请重试。
推荐阅读
- python - Python(matplotlib):在网格中排列多个子图(直方图)
- flutter - 试图将图标按钮包装到容器中,但它不起作用
- reactjs - 将列表隐藏到另一个具有新属性名称的新列表中
- sqlite - Sqlite 使用 fts5 表代替主表来执行所有查询
- flutter - 尝试使用 DefaultTabController.of(context).index 获取 currentTab 但在更改选项卡时当前选项卡始终显示为 0
- typescript - Next.js - 将调用堆栈映射到 .ts 文件
- python - 从列表中的多个字典中获取字典值
- assembly - 获取用户字符串输入并以整数形式重新打印。ATT大会
- arrays - 在数组中添加多个元素
- javascript - 如何确定mxgraph中连接的哪一侧