Heroku没有预先编译我的资产来准备我的应用程序用于资产管道

时间:2011-10-18 19:03:19

标签: mongodb ruby-on-rails-3.1 heroku mongoid asset-pipeline

使用Rails 3.1.1让我的资产管道设置与Heroku / Cedar一起使用时遇到了一些麻烦

我已推送我的应用程序并成功启动,但没有消息说“准备资产管道”并且没有提供静态资产。由于没有slug编译时间或运行时资产编译,因此无法找到JS,CSS或图像。

非常感谢任何帮助。

他们描述了在此link部署期间应该发生的事情,我将在下面进行总结:

  

使用Heroku Cedar上的Rails 3.1应用程序,当你git push heroku时,你的资产将通过使用rake任务包exec rake资产预编译作为部署过程的一部分:precompile。

2 个答案:

答案 0 :(得分:18)

好的,所以解决方法就是这样:

我正在使用mongoid,你可以删除'rails / all'行作为配置的一部分。结果没有加载链轮。

使用rails 3.1+需要做的是在application.rb中添加require "sprockets/railtie"以便启用链轮。热潮,工作。

此信息可在mongoid网站here上找到。对于那些可能没有在application.rb中加载完整“rails / all”的人来说,这很有用,显然需要sprockets才能使资产管道工作。

答案 1 :(得分:2)

您是否在Heroku上看过关于Rails 3.1资产管道的这篇文章 - http://devcenter.heroku.com/articles/rails31_heroku_cedar。我昨天回顾了它并从中获取了一些好的提示,我已经在Heroku上运行了Rails 3.1网站已经有一段时间了。

这是一个新的Rails 3.1站点还是升级到Rails 3.1的站点,需要检查的是资产管道是否已启用生产 - 默认情况下Rails 3.1使用

config.assets.enabled = false
在application.rb中

。您是在为资产使用app / assets而不是public /