注意:我有另一个类似的问题,关于如何使用 Ruby 的 GZIP 数据在zlib
技术上得到了回答,我觉得我不能开始发展这个问题,因为它已经得到了回答,所以虽然这个问题是相关的,但它并不相同......
以下代码(我相信)是对静态 CSS 文件进行 GZIP 压缩并将结果存储在result
变量中。但是从某种意义上说,我该怎么做:如何将这些数据发送回浏览器,以便将其识别为 GZIP 格式而不是原始文件大小(例如,在检查我的 YSlow 分数时,我希望看到它正确标记我确保我 GZIP 静态资源)。
z = Zlib::Deflate.new(6, 31)
z.deflate(File.read('public/Assets/Styles/build.css'))
z.flush
@result = z.finish # could also of done: result = z.deflate(file, Zlib::FINISH)
z.close
...需要注意的一点是,在我之前的问题中,受访者澄清说Zlib::Deflate.deflate
不会产生 gzip 编码的数据。它只会产生 zlib 编码的数据,因此我需要使用等于 31Zlib::Deflate.new
的参数来启动 gzip 流。windowBits
但是当我运行这段代码时,我实际上并不知道如何处理result
变量及其内容。互联网上(我可以找到)没有关于如何将 GZIP 编码的静态资源(如 JavaScript、CSS、HTML 等)发送到浏览器的信息,这使得页面加载更快。似乎我阅读的每篇 Ruby 文章都是基于使用 Ruby on Rails 的人!!?
任何帮助都非常感谢。