Carrierwave没有使用rmagick的大小版本

我正在尝试使用carrierwave来管理图像。我的问题是,我上传的图像的所有版本都已创建,但尺寸完整。代码:Carrierwave没有使用rmagick的大小版本

class TechnologyImageUploader < CarrierWave::Uploader::Base 

# Include RMagick or MiniMagick support:

include CarrierWave::RMagick

def store_dir

"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"

end

# Process files as they are uploaded:

#process :scale => [100, 100]

version :small do

process :resize_to_fit => [25,25]

end

version :medium do

process :resize_to_fit => [50,50]

end

end

所有图像版本都显示为原始上传的大小。

回答:

不知道你们是否有这个问题,因为我有同样的原因,但也许。 我需要将上传的文件移动到一个私人文件夹,我相信你也是这样做的。

我上传后我想删除缓存我做什么用:

after :store, delete_cache 

def delete_cache(new_file)

FileUtils.rm_rf %{#{Rails.root.to_s}/public/uploads}

end

这样做的问题,是创建一个版本之后,在后:商店将被触发,因此应用程序中移除了缓存目录,所以其他版本的方法不能读取该文件了。

对我来说暂时的解决方案是将cache_dir移动到一个私人文件夹。我需要以不同的方式后空的,我需要弄清楚,所以:

def cache_dir 

%{#{Rails.root.to_s}/tmp/uploads}

end

回答:

我的问题的解决方案是,Rails环境中的服务器和“发展上命名为“分期” '在Mac上。

文件config/initializers/carrierwave.rb(第4行)处的第4行禁用了名为'staging'的环境的载波处理。

为了使处理工作,我需要能够与这条线:

config.enable_processing = true 

回答:

我有我的应用程序一个莫名其妙类似的问题。 虽然我想我知道了,当使用版本时, 将每个'进程'设置为一个版本是有帮助的...... 否则我已经注意到有些方法'覆盖其他'... 奇怪。

class ImageUploader < CarrierWave::Uploader::Base 

include CarrierWave::RMagick

if Rails.env == "production"

storage :aws

else

storage :file

end

def store_dir

"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"

end

#this is the 'first' process, 'while you upload', the one that seems to be an issue

process resize_to_fill: [228, 250]

version :industry do

process resize_to_fit: [228, 250]

end

version :portrait do

process resize_to_fill: [360, 200]

end

version :modal do

process resize_to_fill: [330, 300]

end

end


这将继而成为::

class ImageUploader < CarrierWave::Uploader::Base 

include CarrierWave::RMagick

if Rails.env == "production"

storage :aws

else

storage :file

end

def store_dir

"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"

end

#i put everything as a version and it sorts the problem out..

version :base do

process resize_to_fill: [228, 250]

end

version :industry do

process resize_to_fit: [228, 250]

end

version :portrait do

process resize_to_fill: [360, 200]

end

version :modal do

process resize_to_fill: [330, 300]

end

end

我希望这是 '真',将是有益的其他用户

马林

以上是 Carrierwave没有使用rmagick的大小版本 的全部内容, 来源链接: utcz.com/qa/264737.html

回到顶部