刚刚将我的应用部署到heroku并出现“出现问题”页面(500内部服务器错误)。
检查日志后,我可以看到错误来自此
ActionView::Template::Error (./slider/new_york_2.jpg isn't precompiled):
在资产/图片中,我有另一个名为slider的文件夹,该文件夹适用于滑块中的所有图像(尝试保持整齐有序)。
在我的视野中,我会像这样显示图像
<%= image_tag('./slider/new_york_2.jpg') %>
这在开发中有效,但在生产中似乎没有。我在任何地方都犯了一个愚蠢的错误,或者heroku特别没有看到sub fodlers中的图像?我猜测它与路径结构有关吗?
任何帮助表示赞赏
答案 0 :(得分:2)
这里有几种可能性:
<强>路径强>
您正在使用相对路径
您说它在视图中 - 视图路径基于assets/images
文件夹。所以它不能是相对的,因为它已经是。我建议删除相对路径,并将其基于assets/images
文件夹结构,如下所示:
<%= image_tag('slider/new_york_2.jpg') %>
<强>预编译强>
如果你正在使用Heroku,you have to precompile your assets
这保持了一致性和这很简单:
#config/production.rb
config.serve_static_assets = true
然后当你部署到Heroku时,你应该这样做:
rake assets:precompile RAILS_ENV=production
这应该有帮助!