NestJS服务器上的Angular PWA在新部署后崩溃

NestJS服务器上的Angular PWA在新部署后崩溃,angular,express,service-worker,nestjs,angular-pwa,Angular,Express,Service Worker,Nestjs,Angular Pwa,我正在NestJS(版本7)服务器上运行Angular PWA(版本11)。每次新部署后,PWA都会崩溃,因为浏览器试图加载一个不再存在的JavaScript文件,服务器会重定向到根站点(html): 有什么建议吗?提前谢谢。我将向您展示如何使用正在工作的服务人员,您可以测试它,看看它是否能解决您的问题 以下是导入服务工作者的方式: 导入:[ ServiceWorkerModule.register('/ngsw-worker.js',{enabled:environment.productio

我正在NestJS(版本7)服务器上运行Angular PWA(版本11)。每次新部署后,PWA都会崩溃,因为浏览器试图加载一个不再存在的JavaScript文件,服务器会重定向到根站点(html):


有什么建议吗?提前谢谢。

我将向您展示如何使用正在工作的服务人员,您可以测试它,看看它是否能解决您的问题

以下是导入服务工作者的方式:

导入:[
ServiceWorkerModule.register('/ngsw-worker.js',{enabled:environment.production})
]
您应该在
app.component
中使用它来测试浏览器是否实现了service worker:

public ngOnInit():void{
if(this.swUpdate.isEnabled){
此.swUpdate.available.subscribe(()=>{
如果(确认(‘新版本可争议’){
window.location.reload();
}
});
}
}
这是您的服务人员的样子:

{
“index”:“/index.html”,
“资产组”:[
{
“名称”:“应用程序名称”,
“安装模式”:“预取”,
“资源”:{
“文件”:[
“/favicon.ico”,
“/index.html”
],
“versionedFile”:[
“/*.bundle.css”,
“/*.bundle.js”,
“/*.chunk.js”
]
}
},
{
“名称”:“资产”,
“installMode”:“lazy”,
“updateMode”:“预取”,
“资源”:{
“文件”:[
“资产/**”
]
}
}
],
“数据组”:[
{
“名称”:“示例api”,
“URL”:[
“/api/示例”
],
“缓存配置”:{
“策略”:“新鲜度”,
“超时”:“10秒”,
“最大年龄”:“1d”,
“最大尺寸”:100
}
}
]
}
main.945bce5e14ef8a6c0362.js:1 Uncaught SyntaxError: Unexpected token '<'
import { join } from 'path';

import { Module } from '@nestjs/common';
import { ServeStaticModule } from '@nestjs/serve-static';

import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [
    ServeStaticModule.forRoot({
      serveStaticOptions: {
        etag: false,
        setHeaders: (res, path) => {
          if (path.includes('ngsw.json')) {
            res.set('Cache-Control', 'no-cache, no-store, must-revalidate');
          }
        }
      },
      rootPath: join(__dirname, '..', 'pwa'),
      exclude: ['/api*']
    })
  ],
  controllers: [AppController],
  providers: [AppService]
})
export class AppModule {}