启用 IIS7 gzip
如何使 IIS7 能够对 js 和 css 等静态文件进行 gzip 压缩,以及如何在发送到客户端之前测试 IIS7 是否真的对它们进行 gzip 压缩?
How can I enable IIS7 to gzip static files like js and css and how can I test if IIS7 is really gziping them before sending to the client?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
配置
您可以在
Web.config
文件中完全启用 GZIP 压缩。 如果您使用共享主机且无法直接配置 IIS,或者您希望您的配置在您的目标环境之间传递,则此功能特别有用。测试
要测试压缩是否有效,请使用Chrome 中的开发者工具或Firebug for Firefox 并确保设置了 HTTP 响应标头:
请注意,如果响应代码为 304(不是修改的)。 如果是这种情况,请进行完全刷新(按住 Shift 或 Control 键同时按下刷新按钮)并再次检查。
Configuration
You can enable GZIP compression entirely in your
Web.config
file. This is particularly useful if you're on shared hosting and can't configure IIS directly, or you want your config to carry between all environments you target.Testing
To test whether compression is working or not, use the developer tools in Chrome or Firebug for Firefox and ensure the HTTP response header is set:
Note that this header won't be present if the response code is 304 (Not Modified). If that's the case, do a full refresh (hold shift or control while you press the refresh button) and check again.
您需要在 Windows 功能控制面板中启用该功能:
You will need to enable the feature in the Windows Features control panel:
HttpModule 中的全局 Gzip
如果您无权访问最终的 IIS 实例(共享托管...),您可以创建一个 HttpModule,将此代码添加到每个 HttpApplication.Begin_Request 事件中:
测试
感谢,未经测试就没有解决方案。 我喜欢使用 Firefox 插件“Liveheaders”,它显示所有信息关于浏览器和服务器之间的每条 http 消息,包括压缩、文件大小(您可以将其与服务器上的文件大小进行比较)。
Global Gzip in HttpModule
If you don't have access to the final IIS instance (shared hosting...) you can create a HttpModule that adds this code to every HttpApplication.Begin_Request event :
Testing
Kudos, no solution is done without testing. I like to use the Firefox plugin "Liveheaders" it shows all the information about every http message between the browser and server, including compression, file size (which you could compare to the file size on the server).
在 Windows 2012 r2 下,可以在这里找到:
under windows 2012 r2 it can be found here:
我只需要像 Charlie 提到的那样在 Windows 功能中添加该功能。对于在 Windows 10 或 Server 2012+ 上找不到它的人,请按如下方式找到它。 遇到了一些困难
我在 Windows 10 上
Windows Server 2012 R2
window server 2016
I only needed to add the feature in windows features as Charlie mentioned.For people who cannot find it on window 10 or server 2012+ find it as below. I struggled a bit
Windows 10
windows server 2012 R2
window server 2016
如果您将 YSlow 与 Firebug 结合使用并分析页面性能,YSlow 肯定会告诉您页面上的哪些工件未经过 gzip 压缩!
If you use YSlow with Firebug and analyse your page performance, YSlow will certainly tell you what artifacts on your page are not gzip'd!
如果您还尝试对动态页面(如 aspx)进行 gzip 压缩,但它不起作用,可能是因为该选项未启用(您需要使用 Windows 功能安装动态内容压缩模块):
http://support.esri.com/en/knowledgebase/techarticles/detail/38616
If you are also trying to gzip dynamic pages (like aspx) and it isnt working, its probably because the option is not enabled (you need to install the Dynamic Content Compression module using Windows Features):
http://support.esri.com/en/knowledgebase/techarticles/detail/38616
对于所有不得不与德国/德国服务器作斗争的可怜人:)
For all the poor guys who have to struggle with a german/deutsche Server :)
另一种无需安装任何东西即可进行测试的简单方法,也不依赖于 IIS 版本。 将您的网址粘贴到此链接 - SEO 检查
添加到 web.config: http://www.iis.net/configreference/system.webserver/httpcompression
Another easy way to test without installing anything, neither is it dependent on IIS version. Paste your url to this link - SEO Checkup
To add to web.config: http://www.iis.net/configreference/system.webserver/httpcompression
尝试安装了 Firebug 插件的 Firefox。 我正在使用它; 对于网络开发人员来说是一个很棒的工具。
我也使用 web.config 在 IIS7 中启用了 Gzip 压缩。
Try Firefox with Firebug addons installed. I'm using it; great tool for web developer.
I have enable Gzip compression as well in my IIS7 using web.config.