Estaba enloquecido viendo como el Internet Explorer 6 trata las imágenes (y otros recursos) en su cache, especialmente cuando se trata de realizar efectos con estilos a través de CSS o de JavaScript.
Un caso práctico: tenemos un enlace con un comportamiento «hover» que coloca una imagen de fondo sobre el mismo. Bien, el code serÃa algo asÃ:
a:hover
{
background-image: url(archivo.gif);
}
Pero, nuestro amigo Internet Explorer (saludos Bill), parece que trata cada petición como un nuevo recurso, es decir: pasamos el mouse sobre el enlace y se realiza una petición al servidor (generando tráfico de ida y vuelta) y cuando lo volvemos a hacer (no importa si sobre el mismo enlace u otro) hay muchas posibilidades de que se genere la petición (más tráfico,… sabelo).
¿Cómo forzar que se utilice una imagen de caché? (teniendo en cuenta de que necesitemos hacerlo).
Revolviendo en internet (grande San Internet) me topé con este enlace:
http://www.sitepoint.com/forums/showthread.php?t=356355
Explica como establecer reglas a través de htaccess para enviar cabeceras especÃficas por directorio y forzar determinados comportamientos de los navegadores con respecto a los recursos que se descargan desde un servidor web (o algo muy parecido).
Copio y pego por 2 razones: compartir y que no se me pierda la referencia :) (si estoy violando algún derecho de propiedad me avisan a mi correo).
A continuación el contenido del archivo que aparece en el enlace de más arriba:
AddHandler application/x-httpd-php .htm
Options +FollowSymLinks -Indexes -ExecCGI
DirectoryIndex index.htm
### sets it to iso-8859-1
AddDefaultCharset On
DefaultLanguage en-us
ErrorDocument 404 /includes/error/error.htm
ExpiresActive On
ExpiresDefault «A60»
### 1 month
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-shockwave-flash A2592000
### 1week
ExpiresByType text/plain A604800
ExpiresByType application/pdf A604800
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
### 1 hour
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
La copia es literal, y hay algunas directivas que no corresponden a la caché, pero no está de más examinarlas también.
Saludos.