Skip to content


Subversion checkout URL

You can clone with
Download ZIP
connect middleware
Branch: master
Failed to load latest commit information.
lib Fix maxAge option
test fix tests
.gitignore Initial commit
.jshintrc Tests added
.npmignore Initial commit
.travis.yml stop travis testing on 0.8 Release 1.0.0
License Initial commit
Makefile Initial commit Merge branch 'pr/6'
index.js Initial implementation of gzip-static middleware
package.json Release 1.0.0

Build Status Dependency Status NPM version


Middleware for connect: serves compressed files if they exist, falls through to connect-static if they don't, or if browser does not send 'Accept-Encoding' header.

You should use connect-gzip-static if your build process already creates gzipped files. If you want to gzip your data on the fly use built-in connect compress middleware. And if you want to gzip your files dynamically you may want to look up connect gzip.


  $ npm install connect-gzip-static


gzip-static is meant to be a drop in replacement for connect static middleware. Use the same options as you would with connect static.


var gzipStatic = require('connect-gzip-static');
var oneDay = 86400000;

  .use(gzipStatic(__dirname + '/public'))

  .use(gzipStatic(__dirname + '/public', { maxAge: oneDay }))

How it works

gzip-static starts by locating all compressed files (ie. files with .gz extension) in root directory. All HTTP GET and HTTP HEAD requests with Accept-Encoding header set to gzip are checked against the list of compressed files and, if possible, fulfilled by returning the compressed versions. If compressed version is not found or if the request does not have an appropriate Accept-Encoding header, the request is processed in the same way as standard static middleware would handle it.


This project uses debug module. To enable the debug log, just set the debug enviromental variable: DEBUG="connect:gzip-static"



Something went wrong with that request. Please try again.