Rails 4 - CarrierWave default_url无法使用资产图像

cam*_*xon 3 ruby-on-rails image carrierwave

class ImageUploader < CarrierWave::Uploader::Base

  # Include RMagick or MiniMagick support:
  include CarrierWave::RMagick
  # include CarrierWave::MiniMagick

  # Choose what kind of storage to use for this uploader:
  storage :file
  # storage :fog

  # Override the directory where uploaded files will be stored.
  # This is a sensible default for uploaders that are meant to be mounted:
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def default_url
    ActionController::Base.helpers.asset_path("fallback/" + [main, "default.png"].compact.join('_'))
  end

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

  version :main do
    process :auto_orient
    process :resize_to_fit => [300, 360]
  end

  def auto_orient
    manipulate! do |img|
      img = img.auto_orient
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我将我的默认图片上传到app/assets/images/fallback/main/default.png

此default_url遵循载波gem所描述的标准资产管道.它不会给我一个错误,但在视图上只显示一个损坏的图像图标.但是,如果有一个有效的上传,它会正确显示上传,所以我知道:thumb,以及:主要进程正在运行.破坏的唯一部分是default_url,我不明白为什么.我正在使用rails 4顺便说一句.有什么想法/想法吗?

谢谢!

我在视图中的代码显示图像是否已上传且默认网址是否为

<div class="img-container">
  <%= image_tag @user.image_url(:main).to_s %>
</div>
Run Code Online (Sandbox Code Playgroud)

小智 6

我刚才有类似的问题.尝试简单地返回default_url方法中没有其他内容的"default.png".据我所知,Rails或Carrierwave本身处理所有资产管道问题,并将仅使用名称正确加载default.png.