在我的模型中,has_attached_file,我有以下代码:
before_post_process :jpeg_optim_compression
...
def jpeg_optim_compression
path = attachment.queued_for_write[:original].path
Paperclip.run("jpegoptim", "-o --strip-all #{path}")
end
在本地它可以正常工作,提供以下输出:
[paperclip] jpegoptim -o --strip-all temporary_path_to_attachment 2>/dev/null
但是在登台服务器上部署了它会引发错误:
[paperclip] jpegoptim '-o --strip-all temporary_path_to_attachment' 2>/dev/null
Paperclip::PaperclipCommandLineError (Error while running jpegoptim. Expected return code to be 0 but was 3):
我花了一些时间才意识到这些引用是原因(我认为一些文件访问问题和其他问题)。更改为
后Paperclip.run("jpegoptim -o --strip-all #{path}")
OR
Paperclip.run("jpegoptim -o --strip-all", "#{path}")
它有效。有人知道为什么会这样吗?
感谢您的任何建议!