要解决"Angular PWA在生产环境中不更新"的问题,您可以执行以下步骤:
ngsw-config.json
文件并检查dataGroups
节的strategy
属性。确保它设置为"freshness"
,这将强制Service Worker在每个导航中更新应用程序。"dataGroups": [
{
"name": "app",
"urls": ["/", "/index.html", "/assets/**", "/favicon.ico"],
"cacheConfig": {
"strategy": "freshness",
"maxAge": "3d",
"maxSize": 100
}
}
]
@NgModule
装饰器中,确保ServiceWorkerModule
的enabled
属性设置为true
。这将确保Service Worker在生产环境中启用。import { ServiceWorkerModule } from '@angular/service-worker';
@NgModule({
imports: [
ServiceWorkerModule.register('ngsw-worker.js', { enabled: true })
],
...
})
export class AppModule { }
确保在每次部署新版本时,您都会更新应用程序的版本号。这将强制浏览器检测到应用程序的更新并下载新的Service Worker。
如果您在使用CDN或缓存服务器,请确保在每次部署新版本时更新缓存。
通过以上步骤,您的Angular PWA应该能够在生产环境中更新。