Heroku没有编译子文件夹中的图像

时间:2014-01-21 09:11:43

标签: ruby-on-rails ruby heroku assets precompile

刚刚将我的应用部署到heroku并出现“出现问题”页面(500内部服务器错误)。

检查日志后,我可以看到错误来自此

ActionView::Template::Error (./slider/new_york_2.jpg isn't precompiled):

在资产/图片中,我有另一个名为slider的文件夹,该文件夹适用于滑块中的所有图像(尝试保持整齐有序)。

在我的视野中,我会像这样显示图像

<%= image_tag('./slider/new_york_2.jpg') %>

这在开发中有效,但在生产中似乎没有。我在任何地方都犯了一个愚蠢的错误,或者heroku特别没有看到sub fodlers中的图像?我猜测它与路径结构有关吗?

任何帮助表示赞赏

1 个答案:

答案 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

这应该有帮助!