Foros del Web » Creando para Internet » Diseño web »

ofrecer archivos gz si están disponibles

Estas en el tema de ofrecer archivos gz si están disponibles en el foro de Diseño web en Foros del Web. Hola, actualmente estoy usando el software MediaWiki en mi web, que requiere de una serie de archivos. En particular, usa varios archivos CSS. Mi hosting ...
  #1 (permalink)  
Antiguo 24/12/2010, 19:05
 
Fecha de Ingreso: septiembre-2008
Mensajes: 118
Antigüedad: 15 años, 6 meses
Puntos: 4
ofrecer archivos gz si están disponibles

Hola, actualmente estoy usando el software MediaWiki en mi web, que requiere de una serie de archivos. En particular, usa varios archivos CSS.

Mi hosting no me permite transferir con gzip archivos, aunque sí me permite comprimir los scripts php con ob_start.

En otro post me han indicado, creo haber entendido, que a través del .htaccess puedo hacer que archivos CSS, JS... sean "como php" para poder comprimirlos al vuelo.

Sin embargo, he concluído que como siempre se trata de los mismos archivos, lo mejor sería guardarlos ya comprimidos. Esto ya lo he hecho: el webFTP de mi hosting me ha permitido buscar los archivos CSS y guardarlos comprimidos como fichero.css.gz

El problema es que el software sigue ofreciendo al navegador el fichero "fichero.css" y no le ofrece la versión comprimida. ¿Hay alguna forma, sin cambiar el código de MediaWiki, de ofrecer una versión comprimida de los archivos siempre que ésta se encuentre disponible?

¡Mil gracias, estoy perdido en estos asuntos de optimización que ahora se me han vuelto necesarios!
__________________
Sitios en los que colaboro:
wikineos - la web de las montañas
Partituras modernas para piano gratis
  #2 (permalink)  
Antiguo 25/12/2010, 12:04
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: ofrecer archivos gz si están disponibles

humanware:

Creo haberte respondido en otra oportunidad, pero no estoy seguro ya que hice varios post respecto al tema.

El método que propones requiere que tu servidor tenga instalados una serie de Módulos adicionales (me refiero a módulos de Apache concretamente) que dificilmente se hallen instalados.
hoy en día la forma mas transparente y fácil de implementar la compresión se realiza con php, que sólo requiere del módulo de Php "Zlib", el cual, no he visto hasta ahora un solo server que no te permita habilitarlo.


en la página http://gzip.emprear.com.ar vas a encontrar todos los ejemplos y código necesario.


De todas maneras he visto que tu preocupación pasa tambien por no tener que renombrar los css ni js como php. En ese caso deberías usar la técnica detallada en el archivo comprimir_multiples.php

este es el código

Código PHP:
Ver original
  1. <?php
  2. $sincomentarios = 0; // 1 quita comentarios del css cualquier otro valor no
  3. ini_set("default_charset","utf-8");
  4. header ('content-type: text/css');
  5. header ('cache-control: must-revalidate');
  6. if(extension_loaded('zlib')){
  7. ob_start('ob_gzhandler');
  8. }
  9. $offset = 60 * 60;
  10. $expire = 'expires: ' . gmdate ('D, d M Y H:i:s', time() + $offset) . ' GMT';
  11. header ($expire);
  12.  
  13. #### El siguiente bloque permite eliminar los comentarios del css
  14. if ($sincomentarios == 1){
  15. ob_start('compress');
  16. }
  17. function compress($buffer) {
  18. // eliminar comentarios
  19.  $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
  20. return $buffer;
  21. }
  22. ###### Fin bloque para remover comentarios
  23.  
  24. ### Archivos CSS a incluir
  25. include($_SERVER['DOCUMENT_ROOT'] . '/css/estilo_uno.css');
  26. include($_SERVER['DOCUMENT_ROOT'] . '/css/estilo_dos.css');
  27.  
  28. ?>

En el caso de los js, tenes que reemplazar en la linea 4
header ('content-type: text/css');
x
header ('content-type: text/javascript');

y obviamente la ruta en los includes();

respecto de tu conclusión
Cita:
Sin embargo, he concluído que como siempre se trata de los mismos archivos, lo mejor sería guardarlos ya comprimidos
una vez que el navegador lee por primera vez el archivo y lo guarda en su cache, lo hace como un archivo comprimido, y lo descomprime y lee nuevamente desde la cache cuando lo vuelve a requerir, asi que eso no debe preocuparte.

Una última aclaración, yo personalmente dejaría en 0 la opción de eleiminar comentarios para si es necesario poder analizar la script.


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

Etiquetas: gzip, ob_start, htaccess
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 00:07.