所以这是一个奇怪的问题,我似乎无法在网上的任何地方找到参考。希望这里的某人可以阐明以下内容以及潜在的解决方法-
我有一个符合谷歌 PWA 要求的 Angular CLI 应用程序。一切都按预期工作,但是服务工作者没有缓存一些图像。
这是我的 ngsw-config.json -
{
"$schema": "./node_modules/@angular/service-worker/config/schema.json",
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js",
"../assets/signalR/appHub.js",
"../admin/images/**",
"../manifest/manifest.json"
],
"urls": [
"/api/WhoAmI",
"/api/GetApps"
]
}
}, {
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)",
"../admin/images/**"
]
}
}
]
}
在 admin/images 文件夹中,有一些背景图像、徽标、微调器、图标等。但是,当我运行“ng-build --prod”时,唯一被缓存的图像是那些在 CSS 中引用的图像(背景-图片)。任何放置在页面本身上的内容都将被忽略。
这会导致一个没有徽标或图标的脱机页面。
查看生成的“dist”文件夹,“工作”图像文件被复制并赋予随机后缀。
在生成的 ngsw.json 文件中,这些是唯一引用的图像,没有提及丢失的徽标等。
{
"configVersion": 1,
"timestamp": 1568879436433,
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"updateMode": "prefetch",
"urls": [
"/favicon.ico",
"/index.html",
"/main-es2015.b125878abf05e7d82b63.js",
"/main-es5.6e9e620d3fbd96496f98.js",
"/polyfills-es2015.4d31cca2afc45cfd85b5.js",
"/polyfills-es5.2219c87348e60efc0076.js",
"/runtime-es2015.703a23e48ad83c851e49.js",
"/runtime-es5.465c2333d355155ec5f3.js",
"/scripts.f616c8c0191ed4649bce.js",
"/styles.a4be089a70c69f63e366.css"
],
"patterns": [
"\\/api\\/WhoAmI",
"\\/api\\/GetApps"
]
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"urls": [
"/assets/signalR/appHub.js",
"/bgrounds-geometric-black.8d983f6875c006eda992.png",
"/bgrounds-geometric-red.1484266e3058319624bd.png",
"/block-spinner-dark.20f05a2ddef506c61f4d.gif",
...
}
...
}
有没有人能够揭开这一切的神秘面纱?
很抱歉这个问题很长,但如果你已经走到这一步了,谢谢你:)
任何帮助表示赞赏!