如何清除所有客户端中的角度服务工作线程缓存?
首先检查了所有 stackoverflow Q/A 并没有找到我的答案。
我有 Angular 13 项目,它总是在生产构建中使用服务工作者(ngsw.json + ngsw-worker.js)。后来,后端 api URL 在environment.ts 文件中更改为不同的 URL,并且在部署到 Amazon S3 cloudfront 后,前端仍然调用旧端点。
好吧,看来我的服务工作人员缓存了所有文件并且没有更新。我尝试通过 swUpdate 更新它,但它没有帮助,因为它看不到任何更改,所以我只是删除了 serviceWorker :
angular.json :
"serviceWorker": false,
index.html :
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then(function (registrations) {
//returns installed service workers
if (registrations.length) {
for(let registration of registrations) {
registration.unregister();
document.location.reload();
}
}
});
}
</script>
Ran : npm run prerender
将 dist/browser 部署到 Amazon S3 Cloudfront,它没有任何 Service Worker 文件,并且它应该删除所有客户端浏览器中任何使用的 Service Worker + 重新加载页面。这些都没有发生。
如果客户端没有打开开发工具,旧的 Service Worker 仍然会提供旧的 api url。
如何重置我所有客户端中的所有缓存和 Service Worker ?
First of all checked all stackoverflow Q/A and haven't found my answer.
I have Angular 13 project which always used service worker (ngsw.json + ngsw-worker.js) in production build. Later the back-end api url was changed to different one in environment.ts files and after deploy to Amazon S3 cloudfront the Front-end is still calling the the old endpoint.
Okey, so it seems that my service worker cached all files and isn't updating. I have tried updating it via swUpdate, but it just don't help because it can't see any changes so I just deleted serviceWorker :
angular.json :
"serviceWorker": false,
index.html :
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then(function (registrations) {
//returns installed service workers
if (registrations.length) {
for(let registration of registrations) {
registration.unregister();
document.location.reload();
}
}
});
}
</script>
Ran : npm run prerender
Deployed dist/browser to Amazon S3 Cloudfront which don't have any service worker file and It should delete any used service worker in all client browsers + reload the page. Noone of this is happening.
If client is not opening dev tools , old service worker is still giving an old api url.
How to reset all cache and service worker in all my clients ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论