我正在尝试在我的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")
我也试过重新编译我的资产。
关于我做错的任何想法?
答案 0 :(得分:5)
这是一个资产管道问题。
尝试获取/assets/default.png
(放下图片/)
答案 1 :(得分:3)
另一种方法:
ActionController::Base.helpers.asset_path("default.png")
答案 2 :(得分:2)
只需在default_url方法中返回“default.png”。
def default_url
"default.png"
end