如何在RubyonRails中启用压缩?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我在我的网站上运行了PageSpeed Insights。

我收到的最重要的建议是启用压缩。

Compressing resources with gzip or deflate can reduce the number of bytes sent over the network.
Enable compression for the following resources to reduce their transfer size by 191.2KiB 
(74% reduction).

我已按照说明进行操作

https://developers.google.com/speed/docs/insights/EnableCompression

并且它说要查阅有关如何启用压缩的Web服务器的文档:

我用这个网站找出我的网络服务器

http://browserspy.dk/webserver.php

事实证明,我的Web服务器是WEBrick。

PageSpeed Insights页面仅列出以下3台服务器

Apache: Use mod_deflate
Nginx: Use ngx_http_gzip_module
IIS: Configure HTTP Compression

我搜索了有关WEBrick服务器的gzip压缩文档,但找不到任何东西。

我搜索了如何在Rails中启用压缩功能,也找不到任何东西。

提问于
用户回答回答于

启用压缩

将它添加到config / application.rb中:

module YourApp
  class Application < Rails::Application
    config.middleware.use Rack::Deflater
  end
end

资料来源:robots.thoughtbot.com/content-compression-with-rack-deflater

用户回答回答于

如果用insert_before在可能发送响应的任何其他中间件之前(而不是“使用”),则应该将Rack::Deflater放置在中间件堆栈的顶部附近。.use将它放置在堆栈的底部。在我的机器上最顶级的中间件是Rack::Sendfile。所以我会用:

config.middleware.insert_before(Rack::Sendfile, Rack::Deflater).

可以通过rake middleware从命令行执行的加载顺序来获取中间件列表。

扫码关注云+社区