【问题标题】:Heroku not compiling images in a sub folderHeroku没有在子文件夹中编译图像
【发布时间】:2014-01-21 09:11:43
【问题描述】:

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

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

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

在资产/图像中,我有另一个名为滑块的文件夹,用于存放滑块中的所有图像(试图保持井井有条)。

在我看来,我会像这样显示图像

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

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

任何帮助表示赞赏

【问题讨论】:

  • 您是否预编译了您的资产?在将它们推送到 heroku 之前。
  • 在部署到 heroku 时它确实做到了这一点,当我将图像放在资产/图像中时,一切正常

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


【解决方案1】:

这里有几种可能性:


路径

你使用的是相对路径

您说它在视图中 - 视图路径基于 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

这应该有帮助!

【讨论】:

  • 我不知道仅基于资产/图像的视图路径,所以感谢您...我已将所有内容放入资产/图像并停止使用相对路径,一切都很好跨度>
  • 虽然它们基于assets/images 结构,但precompile 进程实际上将所有资产放在app/public 文件夹中:) image_path 帮助器相应地指导路径!跨度>
  • 谢谢。稍微偏离主题,但是当您单击产品链接时,您的网站似乎存在问题... 502 错误
  • 嘿,谢谢伙计 - 我们很快就会推出一个新网站,里面有更新的东西!
  • 加的夫,南威尔士...不太远 :)
猜你喜欢
  • 2013-04-08
  • 2016-04-01
  • 1970-01-01
  • 2018-06-21
  • 2017-09-02
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多