Foros del Web » Administración de Sistemas » Apache »

¿Cómo hacer para forzar el uso de la caché usando xampp en Ubuntu?

Estas en el tema de ¿Cómo hacer para forzar el uso de la caché usando xampp en Ubuntu? en el foro de Apache en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/05/2015, 18:13
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Pregunta ¿Cómo hacer para forzar el uso de la caché usando xampp en Ubuntu?

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.
  #2 (permalink)  
Antiguo 21/05/2015, 02:24
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: ¿Cómo hacer para forzar el uso de la caché usando xampp en Ubuntu?

Prueba con esta regla, debería de funcionar:

Código Apache:
Ver original
  1. <ifmodule mod_expires.c>
  2. ExpiresActive On
  3. #Una semana
  4. ExpiresDefault A604800
  5. <filesmatch ".(js|css|ico|pdf|jpg|jpeg|png|gif)$">
  6. ExpiresDefault "access plus 1 year"
  7. </filesmatch>
  8. </ifmodule>
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #3 (permalink)  
Antiguo 21/05/2015, 02:37
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: ¿Cómo hacer para forzar el uso de la caché usando xampp en Ubuntu?

Cita:
Iniciado por lauser Ver Mensaje
Prueba con esta regla, debería de funcionar:

Código Apache:
Ver original
  1. <ifmodule mod_expires.c>
  2. ExpiresActive On
  3. #Una semana
  4. ExpiresDefault A604800
  5. <filesmatch ".(js|css|ico|pdf|jpg|jpeg|png|gif)$">
  6. ExpiresDefault "access plus 1 year"
  7. </filesmatch>
  8. </ifmodule>
Con esas líneas me aparece status 304 para todas las imágenes pero me sigue descargando todo. Descarto que sea el archivo .htaccess porque he probado otras opciones y el navegador sigue descargando los archivos. Sospecho que pueda ser de los archivos httpd.conf pero no sé que puede estar mal.

Etiquetas: cache, headers, htaccess, http, httpd.conf, ubuntu, xampp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:23.