Rails - image.png未预编译

时间:2012-07-31 20:39:32

标签: ruby-on-rails image asset-pipeline precompiled

我正在尝试在亚马逊的EC2服务器上部署Web应用程序,我在服务器上安装了代码。一切看起来都有效,但当我转到主页时,我收到500错误消息,production.log文件给出了以下错误:

ActionView::Template::Error (image.png isn't precompiled)
  • 我尝试过rake assets:precompile

  • 我已将config/environments/production.rb中的行更改为config.assets.compile = true

  • 我已检查已编译的image.png是否在public/assets/manifest.yml

但我仍然得到同样的错误。

我正在运行Rails 3.2.6和Ruby 1.8.7。

感谢您的帮助!

4 个答案:

答案 0 :(得分:7)

运行rake assets:precompile RAILS_ENV=production应该修复它。 如果您未提供任何RAILS_ENV,则Rails会认为它是development

我相信这是因为资产管道中的每个环境行为都不同。因此,作为一般规则,在生产中,始终使用RAILS_ENV ='production'运行rake任务,你应该保持安全:)

很高兴我能帮忙

答案 1 :(得分:2)

我正在使用Redhat的Openshift,当部署在服务器上时,它会自动转到生产环境。我也有同样的问题,但只在生产服务器上。

执行更改:

config / environments / production.rb to config.assets.compile = true

做了一个享受。此文件中还有另一个参数可以更改:

config.assets.precompile + =%w [* .png * .jpeg * .jpg * .gif]

当在服务器上部署时,您可以手动执行:

rake RAILS_ENV =生产

或者如果您使用的是自动部署的Openshift服务器,则会考虑生产.rb文件中的配置。

希望这有助于其他人遇到同样的问题。

丹尼斯

答案 2 :(得分:1)

config/application.rb中添加如下行:

config.assets.precompile += ['image.png']

虽然,如果它在public/assets/images你不应该。

答案 3 :(得分:0)

已解决 - 需要运行rake assets:precompile RAILS_ENV='production而不仅仅是rake assets:precompile ...
希望这有帮助