Foros del Web » Programando para Internet » PHP »

¿Cómo hacer para forzar el uso de la caché?

Estas en el tema de ¿Cómo hacer para forzar el uso de la caché? en el foro de PHP en Foros del Web. Saludos. Esta es mi situación: 1. Tengo una página web dónde se sirven una serie imágenes que se repiten siempre. El problemas es que cuando ...
  #1 (permalink)  
Antiguo 18/05/2015, 08:23
 
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é?

Saludos.

Esta es mi situación:

1. Tengo una página web dónde se sirven una serie imágenes que se repiten siempre. El problemas 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 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. He probado a reducir el tamaño de dichas imágenes pero es insuficiente. 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 18/05/2015, 13:02
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 8 meses
Puntos: 401
Respuesta: ¿Cómo hacer para forzar el uso de la caché?

Prueba a con la cache desde htacces con la regla expires.
Código Apache:
Ver original
  1. <ifModule mod_expires.c>
  2. ExpiresActive On
  3. ExpiresByType image/gif "access plus 604800 seconds"
  4. ExpiresByType image/jpg "access plus 604800 seconds"
  5. ExpiresByType image/png "access plus 604800 seconds"
  6. </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 19/05/2015, 04:09
 
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é?

Cita:
Iniciado por lauser Ver Mensaje
Prueba a con la cache desde htacces con la regla expires.
Código Apache:
Ver original
  1. <ifModule mod_expires.c>
  2. ExpiresActive On
  3. ExpiresByType image/gif "access plus 604800 seconds"
  4. ExpiresByType image/jpg "access plus 604800 seconds"
  5. ExpiresByType image/png "access plus 604800 seconds"
  6. </ifModule>
Gracias. He probado algo similar y acabo de probar eso y no me funciona.

Creo que el problema está en el módulo mod_expires de mi servidor local pero no sé en qué fallo. En el archivo httpd.conf de la carpeta /opt/lampp/etc/ aparece "LoadModule expires_module modules/mod_expires.so", por lo cual supongo que está habilitado dicho módulo. El archivo httpd.conf de la carpeta /opt/lampp/apache2/conf/ contiene lo siguiente:
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 en el archivo .htaccess de la carpeta /opt/lampp/htdocs/ tengo lo siguiente:
<ifModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 604800 seconds"
ExpiresByType image/jpg "access plus 604800 seconds"
ExpiresByType image/png "access plus 604800 seconds"
</ifModule>
En la carpeta raiz de mi sitio tengo también el mismo archivo porque no estoy seguro de dónde ubicarlo.

NOTA 1: Abrí la consola del navegador Chrome y cuando recargo la página las imágenes aparecen con el status 304 y son descargadas cada vez que la página se recarga. He mirado en configuración pero no aparece nada acerca de la caché salvo su borrado.

NOTA 2: También probé con lo siguiente en el archivo .htaccess:
ExpiresActive On
ExpiresByType image/gif 86400000
ExpiresByType image/png 86400000
ExpiresByType image/jpg 86400000
ExpiresByType image/jpeg 86400000
ExpiresByType text/html 86400000
ExpiresByType text/javascript 86400000
ExpiresByType text/plain 86400000
Y me da error 500.
  #4 (permalink)  
Antiguo 19/05/2015, 07:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Cómo hacer para forzar el uso de la caché?

La configuración de Apache (.htaccess) no corresponde a programación PHP y por lo tanto esta fuera de lugar tu pregunta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/05/2015, 07:14
 
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é?

Cita:
Iniciado por pateketrueke Ver Mensaje
La configuración de Apache (.htaccess) no corresponde a programación PHP y por lo tanto esta fuera de lugar tu pregunta.
La cuestión principal es en relación a los headers de expiración de php aunque si pudiera moverse ,o duplicarse, este hilo a dicha sección me sería de gran ayuda.

Etiquetas: cache, htaccess, http, images, protocolo
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 13:32.