Foros del Web » Programando para Internet » PHP »

Cache control Expire

Estas en el tema de Cache control Expire en el foro de PHP en Foros del Web. Como le hago para decirle al navegador que mis archivos js y Css expiren en un determinado tiempo, estoy checand la velocidad de mi sitio ...
  #1 (permalink)  
Antiguo 08/12/2012, 18:42
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años, 7 meses
Puntos: 3
Cache control Expire

Como le hago para decirle al navegador que mis archivos js y Css expiren en un determinado tiempo, estoy checand la velocidad de mi sitio y salgo muy jodido en eso.
  #2 (permalink)  
Antiguo 08/12/2012, 20:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Cache control Expire

Te conviene hacerlo via .htaccess si está disponible

Código Apache:
Ver original
  1. <FilesMatch "\.(txt|xml|js|css)$">
  2. Header set Cache-Control "max-age=10800"
  3. </FilesMatch>

10800 es el tiempo en segundos, cambialo según tus necesidades

Si lo haces por medio de php, tus archivos deberán ser procesados por php

ejemplo
estilos.css.php

Código PHP:
Ver original
  1. <?php
  2. $archivo = $_SERVER['SCRIPT_FILENAME'];
  3. $expira = 60 * 60 * 24 * 365;
  4. $ExpStr = "Expires:" . gmdate("D,d M Y H:i:s",time() + $expira) . " GMT";
  5. $ft = filemtime($archivo);
  6. $time = time() - $ft;
  7. $eTag = "ci-".md5($archivo.$ft);
  8. header("Content-Type: text/css;charset=utf-8");
  9. header("Cache-Control: public, max-age=$expira");
  10. header($ExpStr);
  11. header('Last-Modified: '.gmdate('D, d M Y H:i:s', $ft).' GMT');
  12. header('ETag: "'.$eTag.'"');
  13. ob_start("ob_gzhandler");
  14. ?>
  15.  
  16. /*estilos */

el valor 365 representa el número de días, cambialo según tus necesidades
ob_start("ob_gzhandler"); agrgamos también compresión gzip
En el caso de los css, idem, salvo que
header("Content-Type: text/css;charset=utf-8");
debe de ser
header("Content-Type: text/javascript;charset=utf-8");

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: cache, control
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 16:21.