Este documento explica las implementaciones realizadas para evitar que las páginas de la carpeta public guarden cache en el navegador.
Se agregaron meta tags de no-cache en las secciones <head> de todos los archivos HTML:
public/main/index.htmlpublic/register/index.htmlpublic/verify.htmlMeta tags agregados:
<!-- Meta tags para evitar cache -->
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
Se creó una clase personalizada NoCacheStaticFiles en routes/static.py que extiende StaticFiles y agrega automáticamente headers de no-cache a todos los archivos estáticos.
Se modificaron las funciones que sirven archivos HTML para incluir headers de no-cache:
serve_app_html()serve_register_html()serve_image()Headers agregados:
headers = {
"Cache-Control": "no-cache, no-store, must-revalidate, max-age=0",
"Pragma": "no-cache",
"Expires": "0"
}
Se creó un middleware global NoCacheMiddleware que asegura que todas las rutas relacionadas con archivos públicos tengan headers de no-cache.
Rutas cubiertas:
/ (página principal)/register (página de registro)/verify (página de verificación)/express/ (archivos estáticos principales)/register/ (archivos estáticos de registro)/images/ (imágenes)Para verificar que funciona correctamente:
Cache-Control: no-cache, no-store, must-revalidate, max-age=0Pragma: no-cacheExpires: 0Estos cambios evitarán completamente el cache, lo que puede resultar en:
Para producción, considera implementar cache selectivo solo en archivos que cambien frecuentemente.