angular - 如何阻止服务人员返回过时的 index.html?
问题描述
我遇到了 Angular 服务人员返回旧版本 index.html(从服务人员安装之日起)的问题,这让我发疯了!
基本上在浏览器(chrome)的新启动时,旧的 index.html 正在由服务人员提供服务,导致加载了一个失效的 mainxxx.js,并且由于 IIS 重写规则,我正在使用以支持深度链接 mainxxx.js返回 index.html 的内容(服务工作者首先返回错误的 index.html 的副作用)
当我软或硬刷新浏览器选项卡时,会加载正确的 index.html 并且一切都很好......也就是说,直到我关闭浏览器并重新开始,此时旧的 index.html 再次提供:O
正如您从下面的屏幕截图中看到的那样(对编辑感到抱歉),我已经通过缓存控制标头关闭了缓存..
使事情复杂化...当我查看开发工具中的“应用程序”选项卡时,我可以看到多个不同版本(我猜)工作者的缓存实例,一个具有旧的 index.html,另一个具有新版本缓存!
虽然我了解有关服务人员的一般概念,但我迷失在 Angular 服务人员提供的所有代码中,所以如果有好心人能指出我的解决方案的方向对我有帮助的话,我会很高兴:)
谢谢!
===== 根据要求,我的 ngsw-config.json 是标准的开箱即用版本..
{
"index": "/index.html",
"assetGroups": [{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js"
]
}
}, {
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
}]
}
解决方案
推荐阅读
- python - 如何在 Python 中进行直接输入游戏手柄
- javascript - 未知字段 [dest],未找到解析器 - 重新索引时出现错误
- angularjs - 从角度传递到控制器的对象显示参数的空值?MVC
- terminology - 命名回调函数时“fcn”代表什么?
- elasticsearch - Elasticsearch 无痛查询以将日期字段值与用户输入的日期值进行比较
- angular - 在角度和firebase中注销时退订不起作用
- php - 如何在 guzzle 查询构建期间将“管道”添加到 get 参数中
- ios - 如何在 iOS 应用程序的 Mapbox 中将 GeoJSON 字典显示为热图
- angular - 为什么这个自定义验证器不起作用?
- python - 显示整个列表,用户可以与之交互