Ruby on rails Rails 4-CarrierWave默认url不使用资产映像 class ImageUploader
我已将默认图像上载到app/assets/images/fallback/main/default.png 此默认的_url遵循载波gem描述的标准资产管道。它没有给我一个错误,但没有显示默认图像,只是在视图上显示一个损坏的图像图标。但是,如果存在有效的上载,它会正确显示上载,以便我知道:thumb和:main进程正在工作。唯一被破坏的部分是默认的url,我不知道为什么。顺便说一句,我正在使用rails 4。有什么想法/想法吗 谢谢 视图中显示图像的我的代码,如果图像已上载,则默认url为Ruby on rails Rails 4-CarrierWave默认url不使用资产映像 class ImageUploader,ruby-on-rails,image,carrierwave,Ruby On Rails,Image,Carrierwave,我已将默认图像上载到app/assets/images/fallback/main/default.png 此默认的_url遵循载波gem描述的标准资产管道。它没有给我一个错误,但没有显示默认图像,只是在视图上显示一个损坏的图像图标。但是,如果存在有效的上载,它会正确显示上载,以便我知道:thumb和:main进程正在工作。唯一被破坏的部分是默认的url,我不知道为什么。顺便说一句,我正在使用rails 4。有什么想法/想法吗 谢谢 视图中显示图像的我的代码,如果图像已上载,则默认url为 cl
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
我也遇到了类似的问题。尝试只返回“default.png”,默认url方法中没有其他内容。据我所知,Rails或Carrierwave自行处理所有资产管道问题,并将仅使用名称正确加载default.png。正如我所见,您在default\u url
方法中使用了'main'变量,但应该version\u name
。如果您想直接使用“main”版本,您应该编写下一个资产路径(“fallback/”+[“main”,“default.png”].compact.join(“'))
,或者只编写“fallback/main\u default.png”
你也有错误的路径:
png的大小重要吗?如果是这样,则为300x400
<div class="img-container">
<%= image_tag @user.image_url(:main).to_s %>
</div>