在我的 Angular 8 项目中,我集成了 PWA、SSR 和服务工作者。
当我使用此命令在本地运行项目时:npm run build:ssr && npm run serve:ssr,我面临以下问题:
- API url,图片不缓存。如果我在离线模式下运行,它们不会显示。
- 主页加载正常。但是当我导航到任何其他页面时,它会将所有HTTP 调用显示为 pending。
ngsw-config.json
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js"
]
}
}, {
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
],
"urls": [
"https://fonts.googleapis.com/**"
]
}
}
],
"dataGroups": [
{
"name": "api-performance",
"urls": [
"/api/siteInfo/home_carousel",
"/api/siteInfo/categories",
"/api/siteInfo/testimonials",
"/api/siteInfo/footer",
"/api/siteInfo/contact",
"/api/gallery/fetch",
"/api/offer/fetch",
"/api/offer/check",
"https://maps.gstatic.com/**"
],
"cacheConfig": {
"strategy": "performance",
"maxAge": "1h",
"maxSize": 100,
"timeout": "5s"
}
}
]
构建后,这是生成的 ngsw.json 文件内容:
"dataGroups": [
{
"name": "api-performance",
"patterns": [
"\\/api\\/siteInfo\\/home_carousel",
"\\/api\\/siteInfo\\/categories",
"\\/api\\/siteInfo\\/testimonials",
"\\/api\\/siteInfo\\/footer",
"\\/api\\/siteInfo\\/contact",
"\\/api\\/gallery\\/fetch",
"\\/api\\/offer\\/fetch",
"\\/api\\/offer\\/check",
"https:\\/\\/maps\\.gstatic\\.com\\/.*"
],
"strategy": "performance",
"maxSize": 100,
"maxAge": 3600000,
"timeoutMs": 5000,
"version": 1
}
],
注意:推荐或其他网址没有任何问题,因为当我这样做时,ng serve所有 http 调用都以 200 状态正确进行。
