【发布时间】:2015-01-20 11:27:39
【问题描述】:
在我的公共文件夹中的index.html.erb 中,我持有我网站的登录页面。我还没有真正的网站,所以只需要一个着陆页。
这个着陆页有很多图片。图片全部存储在app/assets/images。当我运行git push heroku 时,我的资产会被预编译,从那时起,我的所有图像都在public/assets 文件夹中,格式为imagename-hash.png。
在我用作登录页面的index.html.erb 中,我尝试通过<img class="android-device" src=<%= asset_path("nexus_large.png")%> > 访问这些图像,我希望asset_path 能够返回给我nexus_large-hash.png。出于某种原因,它没有。当我进入网页时,我的图像都没有加载。尝试检索资产时出现 404 错误。
我的 Gemfile 中有 rails-12factor 作为宝石。我不明白我做错了什么。
通过heroku run bash,我确认资产已预编译并放入public/assets。通过 Rails 控制台中的helper.asset_path("nexus_large.png"),我确认它应该返回/assets/nexus_large-hash.png
我做错了什么?
编辑:经过进一步检查,如果我要去mywebsite.com/assets/nexus_large-hash.png,我会看到合适的图像。所以100%预编译成功。它链接到失败的图像。
【问题讨论】:
-
当我用对应的
/assets/nexus_large-hash.png替换/assets/nexus_large.png时,确实可以看到图像。话虽如此,希望他们不必依赖硬编码所有的哈希值......
标签: ruby-on-rails ruby-on-rails-4 heroku asset-pipeline