我该如何让Rails资产管道对图像进行gzip压缩?它可以压缩CSS和JS文件,但无法压缩图像。
编辑
重新改写问题。最初是关于子文件夹的问题,但似乎Rails并没有对任何图像进行压缩。
以下是来自Rails经典指南4.1.2节的内容:
当文件被预编译时,Sprockets还会创建您的资产的gzip(.gz)版本。
要预编译您的资产,请使用捆绑好的rake任务:
# from command line
RAILS_ENV=production bundle exec rake assets:precompile
更新:
在研究这个问题后,我想象中的是,虽然 Sprockets 压缩 JS 和 CSS 资源,但它没有压缩图片。然后我发现了这个 gem:sprockets-image_compressor
我自己没有实现过它,但它声称使用 pngcrush 和 jpegoptim 提供图像资源的无损压缩。有趣的是,文档中声明如下:
如果环境没有安装 pngcrush 和/或 jpegoptim,则该 gem 将退回到与 gem 打包在一起的二进制文件。
再次强调,我自己没有使用过它,但如果它能够实现所声称的功能,那么它可能正是你需要的东西。
它不会压缩任何图像,因为图像已经被压缩了(例如jpeg)。因此,它不需要用于节省流量的目的。
这意味着您无法使用任何现有设置进行此操作。