trong dự án RoR của tôi Tôi đang sử dụng CarrierWave + MiniMagick và triển khai cho Heroku để sản xuất.Heroku, CarrierWave, MiniMagick: tệp tmp ngẫu nhiên bị thiếu
Tôi gặp sự cố này khi sản xuất đôi khi tệp tmp bị thiếu để xử lý hình ảnh. Tôi nhận được lỗi này:
Errno::ENOENT: No such file or directory - /tmp/mini_magick20130319-2-3wq6l6.jpg
tôi có các lớp học XUploader khác mà làm việc nhưng có một đặc biệt này có hai quá trình hình ảnh. Ban đầu, tôi có hai quy trình riêng cho việc này:
process :resizer
def resizer
resize_to_fit(model.jrac_image_width, model.jrac_image_height)
end
process :cropper
def cropper
manipulate! do |img|
img.crop("442x190+#{model.jrac_crop_x}+#{model.jrac_crop_y}")
img
end
end
nhưng nó cho biết tôi gặp lỗi trên :cropper
nói rằng tệp tmp không tồn tại. Tôi đã cố gắng thay đổi mã này, hy vọng nó sẽ chỉ hoạt động trên đó một lần:
process :resize_and_crop
def resize_and_crop
manipulate! do |img|
img.resize("#{model.jrac_image_width}x#{model.jrac_image_height}") # resize_to_fit
img.crop("442x190+#{model.jrac_crop_x}+#{model.jrac_crop_y}") # cropper
img
end
end
nhưng không may, vẫn gặp lỗi tương tự.
Có ai có bất kỳ ý tưởng nào về sự cố không? Tôi không biết nếu nó với Heroku hoặc CarrierWave hoặc ImageMagick?
Sửa
Tôi cũng có mã này vào Uploader
lớp học của tôi
def cache_dir
"#{Rails.root}/tmp/uploads"
end
như đối với document này.
Ồ vâng xin lỗi. Tôi có điều này trong lớp 'Uploader' của tôi:' def cache_dir; "# {Rails.root}/tmp/tải lên"; kết thúc' – index