我有一个常规的express.js应用程序,我正在使用
app.use(express.compress())为了压缩gzip响应,现在当我转到node.js中的常规视图页面时,它们都显示为在浏览器中使用gzip提供服务。但是当我进入backbone应用程序的页面时,响应并没有被压缩。也许我在这里漏掉了什么。这是我的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')backbone应用程序加载得很好,唯一的问题是,它没有压缩。有什么想法吗?
发布于 2013-08-15 02:25:40
在ZingProject.com,我们使用Express3.2.6,和你们一样,我们确保gzip压缩如下:
app.use(express.compress());在Chrome中验证的传输大小减少了20%-80%,只需添加这一行,这样我们就知道它是有效的。
您如何验证传输未压缩?在Chrome检查器中,在网络选项卡上,您将看到包含两个数字的传输大小。一个是传输的网络数据量,另一个是文件的实际未压缩大小。如果数字不同,则您的压缩工作正常。如果这些数字是相同的,那么确实有什么不对劲。Firebug只显示网络传输大小,所以如果您使用Firefox,则必须打开和关闭压缩,并比较每个传输的大小。
https://stackoverflow.com/questions/18238074
复制相似问题