2

我正在尝试在 Amazon 的 EC2 服务器上部署一个 Web 应用程序,并且我在服务器上安装了代码。一切看起来都在工作,但是当我转到主页时,我收到一条 500 错误消息,并且该production.log文件给了我以下错误:

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

  • 我已将线路更改config/environments/production.rbconfig.assets.compile = true

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

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

我正在运行 Rails 3.2.6 和 Ruby 1.8.7。

谢谢你的帮助!

4

4 回答 4

7

跑步rake assets:precompile RAILS_ENV=production应该可以解决它。如果您不提供任何RAILS_ENV,Rails 假定它是development

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

于 2012-07-31T20:54:43.647 回答
2

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

执行更改:

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

工作了一个款待。此文件中还有另一个参数可以更改:

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

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

耙 RAILS_ENV=生产

或者,如果您使用像 Openshift 这样自动部署的服务器,将考虑 production.rb 文件中的配置。

于 2013-05-12T10:54:57.443 回答
1

config/application.rb添加一行:

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

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

于 2012-07-31T20:45:37.897 回答
0

已解决 - 需要运行rake assets:precompile RAILS_ENV='production而不是rake assets:precompile...

于 2012-07-31T20:49:29.713 回答