style not mod_gzip htaccess enabled attribute javascript node.js express gzip

javascript - not - title css



Expresar contenido estático gzip (5)

Express y connect parecían haber eliminado sus funciones gzip porque eran demasiado ineficientes. ¿Hay alguna solución confiable para gzip con express-js actualmente?


Connect admitirá las nuevas cosas de zlib en Node en la próxima versión


Express 3.0 ahora tiene soporte de compress ():

var app = express(); // gzip app.use(express.compress()); // static app.use("/public", express.static(__dirname + ''/public'')); // listen app.listen(80);

EDIT para Express 4.0, compress se convierte en el middleware por separado. Entonces debes instalarlo e importarlo para usarlo:

var compress = require(''compression''); app.use(compress());


Si ha buscado en npm es posible que haya encontrado node-compress .

No debería ser demasiado difícil inyectarlo como middleware en express.


También busqué npm y encontré por ejemplo:

Gzippo se desarrolló recientemente (hace 2 días) y creo que es algo bueno. No puedo contarte sobre el uso de producción. Debe probarlo / compararlo usted mismo. Probablemente también usaría un CDN para un sitio en vivo o Nginx para alojar mis archivos estáticos en lugar de algún módulo nodejs.


Connect 2.0 ha agregado soporte para middleware compress() basado en las nuevas cosas de zlib que acaba de salir en Node Core API.

Puede hacer uso de esto en su servidor express agregando una dependencia para conectar 2.0 en su archivo package.json :

{ ... dependencies: { "connect" : "2.x", "express" : "2.x", // etc.. } }

Y luego aplique la siguiente lógica en la configuración de su aplicación expresa:

// Create static file server with gzip support var app = express.createServer(express.logger()); app.use(connect.compress()); app.use(express.static(__dirname + ''/public'')); app.listen(80);

Tenga en cuenta que estas cosas todavía son bastante nuevas y, aunque podría hacerlo funcionar localmente, mi aplicación en la nube Heroku se quejó de la dependencia de Compress 2.x durante el enlace de precompromiso cuando implementó a través de git:

-----> Heroku receiving push -----> Node.js app detected -----> Resolving engine versions Using Node.js version: 0.4.7 Using npm version: 1.0.106 -----> Fetching Node.js binaries -----> Vendoring node into slug -----> Installing dependencies with npm npm ERR! Error: No compatible version found: connect@''>=2.0.0- <3.0.0-''

Como puede ver, todavía usan una versión anterior del nodo (0.4.7).

ACTUALIZAR:

De hecho, pude hacer que Heroku implementara esto agregando la sección de engines correspondiente en el package.json . package.json :

{ ... "engines": { "node": ">= 0.6.0 < 0.7.0" } }

Y estos son los resultados cuando se usa un probador de compresión http:

ACTUALIZACIÓN junio 2014

Hola, si estás leyendo esto ahora. No olvide que las cosas anteriores solo son relevantes para Express 2.0.

Express 3.0 y 4.0 utilizan una sintaxis diferente para habilitar la compresión http, ver publicación de gasolin justo debajo.