我如何在node.js中使用require.js进行Gzip响应

我有一个正规的express.js应用程序,我正在使用

app.use(express.compress()) 

来压缩gzip响应,现在当我转到node.js中的常规视图页面时,它们都显示为在浏览器中使用gzip服务。 但是,当我到达与骨干应用程序的页面,响应不gzipped。 也许我在这里错过了一些东西。 这就是我的app.coffee的样子:

 app = express() app.use(express.compress()) app.set "port", process.env.PORT or 3000 app.set "views", __dirname + "/views" app.set "view engine", "jade" app.engine 'hamlc', require('haml-coffee').__express app.use express.favicon() app.use express.logger("dev") app.use express.bodyParser() app.use express.methodOverride() app.use express.static(path.join(__dirname, "public")) app.use('/dist', express.static(__dirname + '/dist')); app.use('/docs', express.static(__dirname + '/docs')); app.use('/tmp', express.static(__dirname + '/tmp')); app.use require('connect-assets')() 

对我来说,这似乎是一个普通的app.coffee。 这就是require.js如何加载的视图。

 - if(settings.env == 'production') script(type='text/javascript', data-main='/dist/js/main.js', src='javascripts/backbone/marionette/require.js') - else script(type='text/javascript', data-main='javascripts/backbone/main.js', src='javascripts/backbone/marionette/require.js') 

骨干应用程序加载正常,唯一的问题是,它不会被压缩。 有任何想法吗?

在ZingProject.com上,我们使用Express 3.2.6和你一样,我们确保gzip压缩如下:

 app.use(express.compress()); 

在Chrome中validation的传输尺寸比只添加这条线小20%-80%,所以我们知道这是行之有效的。

你如何validation转移不是压缩? 在Chrome检查器中,在networking选项卡上,您将看到一个包含两个数字的传输大小。 一个是传输的networking数据量,另一个是文件的实际未压缩大小。 如果数字不同,您的压缩工作正常。 如果这些数字是相同的,那么确实是有的。 Firebug只显示你的networking传输大小,所以你将不得不打开和closures压缩,并比较传输的大小,如果你使用的是Firefox。