asp.net - equiv - ¿Cómo evitar el almacenamiento en caché de CSS en una página web?
no cache html5 (7)
Estoy aprendiendo a desarrollar páginas web xhtml, css. A menudo estoy haciendo cambios en CSS, pero no se refleja en la página debido al almacenamiento en caché del navegador y si borro manualmente el código muestra los últimos efectos de código. ¿Hay algo que pueda poner en el código para hacer que Browker no almacene cosas en caché? Cualquier consejo por favor
Esto se puede hacer a través de un archivo .htaccess. Coloque este código en un archivo llamado .htaccess en la raíz de su sitio web:
<filesMatch "/.(html|htm|js|css)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>
Presione la tecla F5
5 a 6 veces de manera continua o borre su historial ... Esa no es una solución permanente sino una solución que funciona para mí.
Puede agregar un parámetro de consulta aleatoria a la url de la hoja de estilo (por ejemplo, a través de JavaScript o el código del lado del servidor). No cambiará el archivo css que se está cargando, pero evitará el almacenamiento en caché, ya que el navegador detecta una URL diferente y no cargará la hoja de estilos en caché.
<link rel="stylesheet" type="text/css" href="http://mysite/style.css?id=1234">
Puede crear una clase con el método GetVersion que devolverá la versión de su aplicación (o, por ejemplo, el número de compilación o la fecha de compilación).
Para la aplicación asp.net en el marcado, puede especificar algo como esto:
<script src="Scripts/some.js?version=<%= Common.GetVersion%>" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="~/styles/Style.css?version=<%= Common.GetVersion%>" />
Esto obligará al navegador a volver a cargar archivos porque parte de la URL a archivos estáticos cambiará cada compilación (o al menos cada versión).
Puedes usar id de versión aleatoria en tu enlace. por ejemplo usa esto:
<link href=<%="''mystyle.css?version="+ DateTime.Now.ToString("yyyyMMddhhmmss") +"''"%> rel="stylesheet" type="text/css"/>
donde myStyle.css es el archivo de hojas de estilo y la función DateTime.Now.ToString ("yyyyMMddhhmmss") utilizada para generar un ID de versión aleatorio diferente. Al usar esta identificación de versión aleatoria, el navegador se ve obligado a recargar tu css.
Si está utilizando Chrome como su navegador de desarrollo, hay 2 opciones:
1) Cuando mantienes presionado el botón de recargar la página por un segundo, aparecerá un menú y ofrecerá la posibilidad de realizar una recarga de la página.
2) En la configuración del Inspector, puede forzar al navegador a no guardar nunca archivos en caché.
Creo que es más fácil, más rápido y menos problemático manejar este problema al deshabilitar el almacenamiento en caché en el navegador que en la configuración del servidor.
Sin captura: coloque cadenas intercambiables al final de la ruta css, como se muestra a continuación:
<link rel="stylesheet" type="text/css" href="style.css?2016-12-3:10 13 30"/>
Actualizar cuando cambie la versión:
<link rel="stylesheet" type="text/css" href="style.css?v=1.1.0"/>