当前位置: 首页 > 面试题库 >

表达gzip静态内容

黎苑博
2023-03-14
问题内容

Express和connect似乎已删除其gzip功能,因为它们效率太低。目前,对于express-js的gzip是否有可靠的解决方案?


问题答案:

Connect
2.0
添加了对基于新zlib东西的compress()中间件的支持,而这些东西刚刚出现在Node
Core API中。

通过在package.json文件中添加连接2.0的依赖关系,可以在快速服务器中使用此功能:

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

然后将以下逻辑应用于快速应用程序配置:

// 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);

请注意,这些东西 仍然很新
,虽然我可以让它在本地工作,但我的Heroku云应用程序抱怨在通过git部署时,在预提交钩子期间对Compress
2.x的依赖性:

-----> 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-'

如您所见,他们仍然使用旧版本的节点(0.4.7)。

更新:

实际上,我可以通过在以下位置添加相应的engines部分来让Heroku进行部署package.json

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

这些是使用http压缩测试器时的结果:

在此处输入图片说明

2014年6月更新

iya,如果您现在正在阅读。不要忘记,上面的内容仅与Express 2.0相关。

Express 3.0和4.0使用不同的语法来启用http压缩,请参阅下面的gasolin的文章。



 类似资料:
  • 根据JLS: 内部类是不是显式或隐式声明为静态的嵌套类。内部类不能声明静态初始值设定项或成员接口。 但我下面的代码编译成功。 有人能帮我理解这种行为吗

  • 本文向大家介绍在Apache服务器上启用GZip压缩静态内容的方法,包括了在Apache服务器上启用GZip压缩静态内容的方法的使用技巧和注意事项,需要的朋友参考一下 为了优化网站的访问速度,我们可以通过对静态内容进行压缩,从而减少网页加载的时间,大大节省用户的带宽。在这篇文章中,我将介绍如何使用Apache和.htaccess文件进行静态内容压缩。 首先让我介绍一下,我们可以使用两种不同的方法压

  • 注意: 本教程假定你已经下载和安装了CodeIgniter开发环境。 首先,你需要创建一个可以处理静态内容请求的控制器类。控制器,是一个用来代理完成某项任务的PHP类,它充当基于MVC架构应用程序的“粘合剂”(译者注:控制器用来粘合/协调不同模型和视图。随着教程的深入,你会更深刻的理解这一点)。 举例来说,假设存在某个针对如下URL的请求: http://example.com/news/late

  • Note: 这篇教程假设你已经下载好 CodeIgniter ,并将其 安装 到你的开发环境。 你要做的第一件事情是新建一个 控制器 来处理静态页面,控制器就是一个简单的类, 用来完成你的工作,它是你整个 Web 应用程序的 “粘合剂” 。 例如,当访问下面这个 URL 时: http://example.com/news/latest/10 通过这个 URL 我们就可以推测出来,有一个叫做 "n

  • 主要内容:静态链表中的节点,备用链表,静态链表的创建《 顺序表和链表优缺点》一节,我们了解了两种存储结构各自的特点,那么,是否存在一种存储结构,可以融合 顺序表和 链表各自的优点,从而既能快速访问元素,又能快速增加或删除数据元素。 静态链表,也是 线性存储结构的一种,它兼顾了顺序表和链表的优点于一身,可以看做是顺序表和链表的升级版。 使用静态链表存储数据,数据全部存储在数组中(和顺序表一样),但存储位置是随机的,数据之间"一对一"的逻辑关系通过一个

  • 问题内容: 我无法编译以下代码: 出现以下错误: 无法从静态内容引用非静态方法calcArea(int,int) 这是什么意思?我该如何解决该问题..? 编辑: 根据您的建议,我创建了一个新的test()实例,如下所示: 这样对吗?如果我这样做有什么区别… 问题答案: Nanne提出的建议绝对可以解决您的问题。但是,我认为如果现在就养成习惯,在学习Java的早期阶段,尝试尽可能少地使用静态方法(例