【发布时间】:2015-01-15 13:09:35
【问题描述】:
这很简单:我想在将网站部署到 Apache 之前使用 grunt-contrib-connect 模拟网站的页面大小。
使用 Apache,打开 gzip 压缩非常简单。但是,使用 grunt-contrib-connect,我还没有找到让它工作的方法。这是我迄今为止在 Gruntfile.js 中尝试过的内容:
var compression = require('compression');
...
// The actual grunt server settings
connect: {
dev: {
options: {
open: false,
base: 'dev',
port: '4000',
hostname: 'localhost',
livereload: 35729,
onCreateServer: [compression()]
}
}
}
我也试过了:
connect: {
dev: {
options: {
open: false,
base: 'dev',
port: '4000',
hostname: 'localhost',
livereload: 35729,
middleware: [compression()]
}
}
}
我可以正确地提供文件,但是当我使用 Chrome 开发工具查看网络请求时,我可以看到连接网络服务器提供的任何文件都没有应用压缩。我做错了什么?
【问题讨论】:
-
嗯...奇怪,第二个例子看起来应该是正确的(第一个不是)。抱歉,我不确定还有什么问题。
-
找到了解决方案!在 grunt-contrib-connect 任务中,如果您向
middleware提供Array,它将完全用您提供的中间件替换默认中间件。但是,如果您将middleware选项指定为function,它会按预期工作(将中间件链接到默认中间件):中间件:函数(连接,选项,中间件){中间件.unshift(压缩()) ;返回中间件; } -
很高兴你找到它!您应该将此添加为您自己问题的答案并接受它,这将有助于其他人在需要时找到答案。
标签: gruntjs compression gzip connect