0

我的haml文件:

%img{:class => 'thumbnail', :src => '/assets/images/filename.jpg'}

它在 html 浏览器中正确输出:

<img class="thumbnail" src="/assets/images/filename.jpg">

但是图像不显示。这就是 Chrome 正在寻找的内容:

http://127.0.0.1:3000/assets/images/filename.jpg

但是当我尝试访问该网址时,我会看到:

Routing Error
No route matches [GET] "/assets/images/filename.jpg"
Try running rake routes for more information on available routes.shown

我应该在配置文件中添加一些东西吗?任何帮助将不胜感激,谢谢。

PS:我在开发环境中工作,所以我提供自己的静态文件。

4

3 回答 3

8

您应该使用/assets/filename.jpg没有images命名空间。

于 2013-03-30T16:23:29.120 回答
2

你应该可以= image_tag('filename.jpg', class: 'thumbnail')在你的haml文件中做。

此外,您可以在添加路径之前检查是否有任何图像,只需转到浏览器并查看是否出现任何内容,例如:

http://127.0.0.1:3000/assets/images/filename.jpg

http://127.0.0.1:3000/assets/filename.jpg
于 2013-03-30T16:34:40.157 回答
0

我解决了我的问题。因为我使用的是 Rails 3.2 而这个版本使用了资产管道,所以你必须声明你想要公开的目录。您可以通过在 config/application.rb 文件中添加这一行来做到这一点:

config.assets.paths << Rails.root.join("path", "to", "dir", "from", "root")

就我而言,我希望 medias/images/thumbnails 目录成为资产的一部分(媒体位于根级别),所以我只需添加:

config.assets.paths << Rails.root.join("medias", "images", "thumbnails")

然后我可以在模板中访问它们,就像使用 src="/assets/filename.jpg" 的其他资产一样。这很实用,因为在我的情况下,我只想公开缩略图,而不是原始图片。

于 2013-03-30T19:08:59.550 回答