Saludos.
Esta es mi situación:
1. Tengo una página web funcionando en localhost con xampp, en Ubuntu, dónde se sirven una serie imágenes que se repiten siempre. El problema es que cuando presiono F5, o refresco la página usando PHP, el navegador descarga de nuevo las imágenes.
2. Las imágenes tienen una url fija pero se distribuyen de forma dinámica en la pantalla mediante PHP cambiando de posición o localización y mostrándose mediante html puro ("<img src="" id=""/>").
3. Quiero que estás imágenes sólo se descarguen una vez al ingresar a dicha página.
He probado a reducir el tamaño de dichas imágenes pero es insuficiente. He probado usando headers aunque no tengo mucha idea de si debería aplicarlos o de como aplicarlos en este caso pues las imágenes se sirven en html, aunque he probado a mostrarlas con php acompañadas de todo tipo de headers no me han resultado. Lo último que he intentado es usar los archivos httpd.conf y .htaccess para evitar descargar o que el cliente descargue las imágenes más de una vez. Consigo variar el status de los request de 200 a 304 y viceversa pero de cualquier manera el navegador parece descargar los archivos cada vez que carga la página.
Confirmo que el modulo mod_expires está activado al igual que mod_headers pues el el archivo httpd.conf de la carpeta etc de lampp aparecen las dos siguientes líneas sin comentar:
Código:
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
El contenido del archivo httpd.conf es el siguiente:
Código:
SetOutputFilter DEFLATE
Header unset ETag
FileETag None
<FilesMatch "\.(js|css|ico|pdf|jpg|jpeg|png|gif)$">
ExpiresActive On
ExpiresDefault "access plus 1 year"
Header append Cache-Control "public"
Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT"
Header unset Last-Modified
</FilesMatch>
Alias /bitnami/ "/opt/lampp/apache2/htdocs/"
Alias /bitnami "/opt/lampp/apache2/htdocs"
<Directory "/opt/lampp/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Y el contenido del archivo .htaccess, localizado en la carpeta htdocs, es este:
Código:
SetOutputFilter DEFLATE
Header unset ETag
FileETag None
<FilesMatch "\.(js|css|ico|pdf|jpg|jpeg|png|gif)$">
ExpiresActive On
ExpiresDefault "access plus 1 year"
Header append Cache-Control "public"
Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT"
Header unset Last-Modified
</FilesMatch>
Añado algo que me parece raro: cuando hago un submit en dicha página, y luego del submit al recargar la página de nuevo, el navegador si una las imágenes de la caché, no sé porque no sigue recurriendo a la misma. Estaría muy agradecido si alguien me pudiera ayudar a solucionar este problema que me trae de cabeza ya que es esencial para el desempeño de mi aplicación.
Gracias de antemano y de nuevo un saludo.