【发布时间】:2015-04-07 14:20:45
【问题描述】:
我有一个问题/问题 - 实际上我不确定,也许这就是它的行为方式(?)
我正在使用带有carrierwave的Rails 4来上传文件,我刚刚添加了minimagick gem来创建上传图像的版本。
当我上传图片时 - 效果很好并制作了版本。
但是当我加载带有图像的页面时,它似乎为屏幕上显示的每个图像调用“版本”方法....(而不是上传过程!只显示图像!)
因此,即使在我上传图像并实际创建它的版本之前 -> 我已经在我的上传文件中添加了一个“版本”方法 -> 在我的网站中刷新了一个页面 -> 调用了“版本”方法(还没有上传任何东西)
我的上传文件:
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :fog
version :nav_thumb, if: :is_avatar? do
process :resize_to_fit => [50, 50]
end
version :box_thumb, if: :is_logo? do
process :resize_to_fit => [40, 40]
end
def is_avatar?(picture)
mounted_as == :avatar
end
def is_logo?(picture)
mounted_as == :logo
end
end
似乎我页面中显示的每个图像都在使用is_avatar? 方法(我使用pry 调试器查看发生了什么)
并且 -> 它使我的页面加载速度变慢,这与我希望通过较小的图像版本实现的效果相反。
这是正常行为吗?每次我加载图像时都应该使用version 方法吗?
我该怎么做才能解决它?
谢谢。
【问题讨论】:
-
我认为亚马逊 S3 服务是上传图片的更好方式...
-
我正在将图像上传到 S3....但这与我的问题无关
标签: ruby-on-rails ruby carrierwave minimagick