【问题标题】:Rails CarrierWave versions are not created for some reason由于某种原因,未创建 Rails CarrierWave 版本
【发布时间】:2012-08-19 07:48:30
【问题描述】:

我有以下文件上传器

class ItemImageUploader < CarrierWave::Uploader::Base
  include ::CarrierWave::Backgrounder::Delay
  include CarrierWave::MiniMagick
  include Sprockets::Helpers::RailsHelper
  include Sprockets::Helpers::IsolatedHelper

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

  # Provide a default URL as a default if there hasn't been a file uploaded:
  def default_url
    asset_path("fallback/" + [version_name, "image.png"].compact.join('_'))
  end

  def cache_dir
      "uploads/tmp"
  end

  # Create different versions of your uploaded files:
  version :thumb do
    process :resize_to_fill => [80,80]
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end

图片类

class Picture < ActiveRecord::Base
  belongs_to :imageable, :polymorphic => true
  mount_uploader :image, ItemImageUploader
  process_in_background :image
  validates_presence_of :image

  def copy
    Picture.new(:image => self.image)
  end

以及carrier_wave.rb初始化文件中的如下配置:

CarrierWave.configure do |config|
config.enable_processing = true
    #config.permissions = 0666
    #config.directory_permissions = 0777
    config.storage = :file
end

图片已正确上传,但未创建缩略图,未发生错误。请指教。

【问题讨论】:

  • @prusswan 不,我有 gem "mini_magick"gem 'carrierwave'gem "devise"gem 'carrierwave_backgrounder'。我还需要其他东西吗?
  • 我相信mini_magick 只是一个包装器。如果您阅读文档here,您可以在底部看到:您必须安装 ImageMagick 或 GraphicsMagick。
  • @prusswan 谢谢,我已经通过自制命令安装了 imagemagic,但仍然有相同的行为。有什么方法可以验证 imagemagic 是否正常工作?
  • -bash: identify: command not found 貌似安装有问题...
  • 我不经常使用mac,但是查看brew info imagemagick的输出,考虑this

标签: ruby-on-rails-3 imagemagick carrierwave homebrew


【解决方案1】:

我自己就用头撞这个。正如 cmets 建议的那样,使用 carrierwave_backgrounder 会导致此问题。你可以在他们的documentation看到它:

process_in_background - This stores the original file with no processing/versioning.

对解决方案没有帮助,但我想我会验证问题。

【讨论】:

    【解决方案2】:

    我今天为此苦苦挣扎了几个小时,因为我遇到了同样的问题。可以上传原始版本,但没有调整大小。它在本地工作,但不在我的生产机器上。希望有同样问题的人偶然发现这个答案并节省一些时间。

    原来我的 ImageMagick 版本没有使用正确的代表构建,这是 $ convert -version 的输出:

    Version: ImageMagick 6.9.1-10 Q16 x86_64 2015-08-01 http://www.imagemagick.org
    Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC
    License: http://www.imagemagick.org/script/license.php
    Features: Cipher DPC OpenMP 
    Delegates (built-in): zlib
    

    我使用这个答案来安装代理并构建新版本的 ImageMagick:ImageMagick missing decode delegates

    之后,使用 $ convert -version 调出 ImageMagick 信息:

    Version: ImageMagick 6.9.1-10 Q16 x86_64 2015-08-01 http://www.imagemagick.org
    Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC
    License: http://www.imagemagick.org/script/license.php
    Features: Cipher DPC OpenMP 
    Delegates (built-in): bzlib djvu fontconfig freetype gvc jbig jng jpeg lcms lqr lzma openexr png tiff wmf x xml zlib
    

    现在我开始了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      相关资源
      最近更新 更多