Rails Rails 3.2 为什么 image_tag 就只能显示放在 app/assets/images 的图片?

fayannie · 2012年03月28日 · 最后由 nicetyler 回复于 2017年08月24日 · 8512 次阅读

如题我用的 Rails3.2.2, image_tag 就只能显示放在 app/assets/images 的图片~ 为什么? 如果把图片就放在 app/assets/images 中,部署到生产模式的时候就会有问题,貌似这个路径下的都是“static assets”,而最后发布项目的时候,这个路径根本就没有了,就只存在 public/路径呀~~~~ 那我一开始就把图片放在 public/路径下,到底要怎么显示呢? 论坛里没人用 Rails3.2 及以上么版本么?

求大牛帮忙~~我试过:image_tag("public/1.jpg"); image_tag("#{Rails.root}/public/1.jpg") 都没用,总之就算手写 html 也不行,这个图片怎么可能只能放在 app/assets/images 下面呢?

@lanisle 恩,是的~~可是那要怎么才能显示放在 public/的图片呢?

3.1.4 Linking to Images with the image_tag

By default, files are loaded from public/images.

http://guides.rubyonrails.org/layouts_and_rendering.html#asset-tag-helpers

不清楚你描述的,手机上,贴了相关文档给你。

生产环境部署的时候执行一下 rake assets:precompile

我要哭死了,问题已解,是我犯了一个很小的错误,小小的总结一下~~ 如果"1.jpg"放在 app/assets/images 下面,那就 image_tag("1.jpg") 就行了~~ 如果"1.jpg"放在 public 下面,应该是 image_tag("/1.jpg"),有一个斜杠的区别~~ @lanisle 谢谢帮忙,这个斜杠找的我好辛苦~~

#6 楼 @fayannie 多看源码会很省事的

fayannie 回复

666666 我也这个问题困扰了我半天,直接加个/就行了,太坑爹了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号