我已经为无损压缩jpgs和png编写了一个链轮处理器,你可以在这里查看它:https://github.com/botandrose/sprockets-image_compressor
但是,我不能在heroku上使用这个gem,因为jpegoptim和pngcrush程序在他们的环境中不可用。此外,gem的用户需要记住在他们想要使用我的gem的每个系统上安装这些程序。所以,如果系统没有安装这些二进制文件,我认为如果我能将这些二进制文件中的供应商作为后备文件,那就太好了。
那么,这真的很疯狂吗?我需要提供64位二进制和32位二进制吗?我还需要安装某种外部库吗?我是否会更好地编写某种挂钩到这些程序的C扩展?
答案 0 :(得分:0)
我没有看到很多野外的宝石做这种事情。然而,另一个选择是提供外出的rake任务,如果它们尚未安装在机器上,则可以获取程序。但是,让它适用于所有不同的平台可能会很棘手。
答案 1 :(得分:0)
关于在Heroku上使用你的gem:记住Heroku有一个只读文件系统(/tmp
目录除外),所以在Heroku上运行像你这样的Sprockets处理器并不是一个切实可行的选择。我个人只是使用rake assets:precompile
并将所有预编译的资产提交给我的Git仓库,然后再推送到Heroku。是的,我知道这会影响回购历史,但这是最简单的方法(至少目前为止)。希望Heroku将来会提出一些其他的选择。
就你提出的主要问题而言,希望其他人可以提供一个好的答案。你的项目看起来很酷;我只想尝试一下。