Me gustaría comprimir los archivos CSS y JS en mi servidor para minimizar los tiempos de carga, problema.

Mi hosting es con Streamline.net (gran error, nunca vayas allí) que no activará mod_gzip y mod_deflate debido a problemas de seguridad.

¿Alguien tiene otra forma de comprimir este tipo de archivos (y archivos de imágenes también si es posible) sin seguir el modo de mod_gzip y mod_deflate.

Las respuestas serían muy bienvenidas.

4
DanC 23 dic. 2009 a las 16:27

5 respuestas

La mejor respuesta

Puede ejecutar sus archivos a través de un script que los comprimiría por usted y agregaría los encabezados de caducidad apropiados. Configure una reescritura de URL o reescriba las URL manualmente:

<script src="js/somescript.js"></script>

Se convierte

<script src="compress.php?somescript.js"></script>

Y en compress.php, puedes hacer algo como

<?php
$file = 'js/' . basename($_SERVER['QUERY_STRING']);
if (file_exists($file)) {
    header ('Last-Modified: ' . date('r',filemtime($file));
    header ('Content-Type: text/javascript'); // otherwise PHP sends text/html, which could confuse browsers
    ob_start('ob_gzhandler');
    readfile($file);
} else {
    header('HTTP/1.1 404 Not Found');
}

Obviamente, esto también se puede extender a proporciona almacenamiento en caché HTTP y / o minificación sobre la marcha, lo que acelera aún más la navegación de sus visitantes.

2
Piskvor left the building 26 dic. 2009 a las 19:21

La mayoría de los lenguajes de programación admiten algunos formatos de compresión de datos o archivos como ZLIB o GZIP. Por lo tanto, podría usar un lenguaje de programación para comprimir sus archivos con uno de estos formatos.

0
Gumbo 23 dic. 2009 a las 13:31

Solo como una nota al margen: comprimir imágenes no sería beneficioso si estas ya están guardadas en un formato comprimido con la compresión máxima que aún se ve bien para el usuario.

1
Adrian Grigore 23 dic. 2009 a las 13:43

En lugar de obtener mod_gzip para comprimir sus archivos CSS y JavaScript dinámicamente, puede comprimirlos usted mismo y luego cargarlos.

Esto introduce otro paso antes de cargar CSS y JavaScript, pero funciona, y tal vez incluso ahorre un poco de tiempo de procesamiento del servidor para cada solicitud en comparación con mod_gzip.

En Mac OS X, comprimir un archivo en la línea de comandos es tan fácil como, por ejemplo:

gzip -c styles.css > styles-gzip.css

Sin embargo, asegúrese de que estos archivos se sirvan con el encabezado de tipo de contenido correcto.

2
Paul D. Waite 23 dic. 2009 a las 14:12

Sí, la respuesta es Minificación.

Obviamente, no se comprimirá tanto como gzip o deflate. Pero ayuda, y es muy fácil de hacer con las herramientas adecuadas.

4
Daniel Vassallo 26 dic. 2009 a las 10:26