Carrierwave默认图像不显示

时间:2013-05-28 20:04:14

标签: ruby-on-rails carrierwave

我正在尝试在我的Rails 3.2应用程序中显示默认图像。我按照Carrierwave github页面上的说明进行了操作,并查看了几个Stackoverflow帖子。但是,由于某种原因,它仍然无法正常工作。

这是我的代码:

在我的photo_uploader.rb文件中,我启用了此功能:

def default_url
  "/images/" + [version_name, "default.png"].compact.join('_')
end

在我的表单和显示视图中,我正在访问这样的图像:

<%= image_tag @user.photo.url %>

我的图片的路径是:

/app/assets/images/default.png

在我的application.rb中,我添加了以下行,因为它应该允许提供静态资产:

config.serve_static_assets = true

但是,我的服务器在加载页面时显示以下内容:

ActionController::RoutingError (No route matches [GET] "/images/default.png")

我也试过重新编译我的资产。

关于我做错的任何想法?

3 个答案:

答案 0 :(得分:5)

这是一个资产管道问题。

尝试获取/assets/default.png(放下图片/)

此处提供更多信息:http://guides.rubyonrails.org/asset_pipeline.html

答案 1 :(得分:3)

另一种方法:

ActionController::Base.helpers.asset_path("default.png")

答案 2 :(得分:2)

只需在default_url方法中返回“default.png”。

def default_url
  "default.png"
end