我有一个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的一个最新副本。