Actualizar css y javascript en un CDN o Cloudfront de amazon


Si tienes contratado un servicio de disposición de contenidos (CDN, content delivery network) descubrirás que la forma de funcionar de estos es como un proxy. Es decir, cuando pedimos un archivo, éste lo descarga de nuestra web y de ahí en adelante, se empleará como caché (hasta que se cumpla el periodo de vida programado en el CDN,normalmente 24 horas).

Esto es un problema si realizamos modificaciones en nuestra tienda porque no veremos los cambios reflejados al instante, ya que el nombre del archivo no cambia, aunque lo haga su contenido.

Para evitar esto debemos hacer una modificación en la clase "Tools"  que podemos encontrar en la carpeta classes.

 

Para CSS
En la linea 1593 debemos modificar ésta linea:

 

	$cache_filename = _PS_THEME_DIR_.'cache/'.$compressed_css_files_infos[$media]['key'].'_'.$media.'.css';

 

por esta otra:

 

	$cache_filename = _PS_THEME_DIR_.'cache/'.$compressed_css_files_infos[$media]['key'].'_'.$css_files_by_media[$media]['date'].'_'.$media.'.css';

Lo que hemos hecho es añadir la fecha del archivo CSS comprimido al nombre del mismo, de modo que mientras no actualicemos nuestro css, no se crearán ni compilarán más copias en cache, por el contrario, si hemos actualizado alguno de los archivos css, la caché se refrescará en nuestro servidor y por tanto, en el CDN

 

Para JS


En la linea 1666 añadir:

$compressed_js_path = _PS_THEME_DIR_.'cache/'.$compressed_js_filename.'_'.$compressed_js_file_date.'.js';

y en la 1670 lo siguiente:
$compressed_js_path = _PS_THEME_DIR_.'cache/'.$compressed_js_filename.'_'.$js_files_date.'.js';

 

 

 

Etiquetas: 1.4.x, cdn, versioning
02-10-2013 04:30 Rodrigo Medina {writeRevision}
Valoración media: 0 (0 votos)

No puedes comentar este registro

Chuck Norris has counted to infinity. Twice.