Angular 角6服务人员和路由

Angular 角6服务人员和路由,angular,angular-routing,angular-service-worker,Angular,Angular Routing,Angular Service Worker,我有一个Angular 6应用程序,它运行良好,但只有在我发布更新之前 服务工作者正在请求运行时[hash].js脚本的旧版本。这正常吗?我的理解是,服务人员应该请求ngsw.config中定义的脚本,并使用其中的哈希表来确定是否需要从服务器请求资源 此外,我的(简化)应用程序路由如下: { path: 'login', component: LoginComponent }, { path: 'logout', component: LogoutCompone

我有一个Angular 6应用程序,它运行良好,但只有在我发布更新之前

服务工作者正在请求运行时[hash].js脚本的旧版本。这正常吗?我的理解是,服务人员应该请求ngsw.config中定义的脚本,并使用其中的哈希表来确定是否需要从服务器请求资源

此外,我的(简化)应用程序路由如下:

{
    path: 'login',
    component: LoginComponent
}, 
{
    path: 'logout',
    component: LogoutComponent
}, 
{
    path: 'error',
    component: ErrorComponent
}, 
{
    path: '**',
    pathMatch: 'full',
    component: PageNotFoundComponent
}
这似乎使问题更加复杂,因为指向“PageNotFoundComponent”的全包路由似乎开始发挥作用。例如,如果我请求一个不存在的脚本,我会得到PageNotFoundComponent


这会导致意外的标记“如何或以何种方式请求脚本文件?我正在查看源代码并在新选项卡中的script src属性中打开url。”。如果我将URL更改为不存在的内容,则会看到PageNotFoundComponent是的,当然。web服务器/容器的HTTP请求设置是什么?您是否将所有内容都指向Angular应用程序的index.html?嗨,我不确定我是否理解您的问题。请您重新措辞好吗?您是否将所有请求转发到Angular入口点,例如“index.html”?如果您将API和Angular应用程序托管在一起,为了让Angular Router控制,您需要在HTTP请求的所有/部分上配置重定向。e、 g./controller1/action1,在这里,服务器端将处理这个问题并将其转发到'index.html'。之后,Angular Route将查找并渲染正确的组件。这就是我认为您的问题所在,因为请求*.js或*.css是由Angular Route处理的,而不是服务器端来提供文件资源。