【问题标题】:Rails - image.png Isn't PrecompiledRails - image.png 未预编译
【发布时间】:2012-07-31 20:39:31
【问题描述】:

我正在尝试在 Amazon 的 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.pngpublic/assets/manifest.yml

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

我正在运行 Rails 3.2.6 和 Ruby 1.8.7。

感谢您的帮助!

【问题讨论】:

  • public/assets/image.png 是否存在?
  • 是的。 (更多的角色让我很开心)
  • 你可以尝试运行rake assets:precompile RAILS_ENV=production吗?
  • 修复了它 - 我猜它默认只在开发环境中预编译?非常感谢!

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


【解决方案1】:

运行rake assets:precompile RAILS_ENV=production 应该可以修复它。 如果你没有提供任何RAILS_ENV,Rails 会假定它是development

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

【讨论】:

    【解决方案2】:

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

    执行更改:

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

    工作很愉快。此文件中还有另一个参数可以更改:

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

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

    rake RAILS_ENV=production

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

    【讨论】:

      【解决方案3】:

      config/application.rb 中添加一行:

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

      不过,如果它位于 public/assets/images 中,则不必这样做。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2014-07-10
          • 1970-01-01
          • 1970-01-01
          • 2012-07-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多