En primer lugar, verifiqué todas las preguntas y respuestas de stackoverflow y no encontré mi respuesta.
Tengo un proyecto Angular 13 que siempre usó un trabajador de servicio (ngsw.json + ngsw-worker.js) en la compilación de producción. Más tarde, la URL de la API de back-end se cambió a una diferente en los archivos de environment.ts y, después de la implementación en la nube de Amazon S3, el front-end sigue llamando al antiguo punto de conexión.
Bien, parece que mi trabajador de servicio almacenó en caché todos los archivos y no se está actualizando. Intenté actualizarlo a través de swUpdate, pero simplemente no ayudó porque no puede ver ningún cambio, así que eliminé serviceWorker:
angular.json:
"serviceWorker": false,índice.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> Corrió: npm run prerender
Se implementó dist/navegador en Amazon S3 Cloudfront que no tiene ningún archivo de trabajador de servicio y debería eliminar cualquier trabajador de servicio usado en todos los navegadores de clientes + recargar la página. No pasa nada de esto.
Si el cliente no está abriendo las herramientas de desarrollo, el antiguo trabajador del servicio aún está proporcionando una URL de API antigua.
¿Cómo restablecer todos los trabajadores de caché y servicio en todos mis clientes?