Angular 6服务人员和路由

时间:2018-10-30 16:43:31

标签: angular angular-routing angular-service-worker

我有一个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。

这会在浏览器中导致意外的令牌“ <”错误(我认为脚本标记实际上是在期望某些脚本而不是404页面的html)。

为什么角度布线似乎在这里起作用?如果我请求一个存在的脚本,我将获得返回的脚本内容(因此似乎不受路由的影响),但只有在不执行该操作时,我才会获得404页面。

修改 只是添加一下,我将请求的响应附加到ngsw.json。这显示了脚本/资源的哈希表。在这里,我仅看到runtime.js的一个最新副本。

enter image description here

0 个答案:

没有答案