资产管道生成的任何类型的MD5哈希或缓存密钥是否代表资产文件夹中的所有文件?我正在寻找一种方法来了解在部署之间何时添加,删除或更新资产。
答案 0 :(得分:0)
我认为没有包含所有资产的单个哈希的缓存。在生产时,如果您预编译了资产,则应在公共资产目录中找到sprockets manifest file(通常类似于.sprockets-manifest-*randomnumber*.json
),但此文件包含所有单个资产的哈希值。所以,你必须比较所有的哈希才能知道差异。
如果你想要的只是加速部署,那么看看capistrano-faster-assets gem就是这样 - 它将当前部署的资产与之前部署的资产进行比较。如果没有区别,它会跳过资产预编译,这会大大节省部署期间的时间。此gem使用diff
unix命令来比较资产目录。如果你需要做除了宝石以外的其他事情,你可以在comparison task source code中查看灵感。