2

我试图在我的 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")

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

关于我做错了什么的任何想法?

4

3 回答 3

6

这是一个资产管道问题。

尝试获取/assets/default.png(删除图像/)

更多信息在这里: http: //guides.rubyonrails.org/asset_pipeline.html

于 2013-05-28T20:49:51.767 回答
3

另一种方法:

ActionController::Base.helpers.asset_path("default.png")
于 2014-07-24T17:40:19.517 回答
2

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

def default_url
  "default.png"
end
于 2015-04-06T12:11:59.820 回答