Rails 3.2.1 heroku资产预编译错误

时间:2012-02-05 09:51:46

标签: ruby-on-rails heroku

我已将这两行添加到application.rb:

config.assets.initialize_on_precompile = false

config.assets.compile = true

但是当我推送到Heroku时,我仍然会遇到错误:

2012-02-05T09:48:34+00:00 app[web.1]: Completed 500 Internal Server Error in 3ms
2012-02-05T09:48:34+00:00 app[web.1]: 
2012-02-05T09:48:34+00:00 app[web.1]: ActionView::Template::Error (bootstrap.css isn't precompiled):

有什么建议吗?

3 个答案:

答案 0 :(得分:13)

根据它的外观,您有一个bootstrap.css文件未在app/assets/stylesheets内的清单文件中正确包含,并且您可能也直接从stylesheet_tag调用。< / p>

有几种方法:

  1. 您可以在环境配置文件中添加一行,以确保您调用的css文件已预编译:
  2. config.assets.precompile += %w( bootstrap.css )

    ......例如。

    1. 这是我可能会做的;如上所述,将bootstrap.css文件包含在`app / assets / stylesheets'中的清单文件中。您的清单文件将如下所示(不确定此格式是否会在此处正确显示,因此我还创建了一个要点:https://gist.github.com/1753229):
    2. / * * =需要引导程序 * /

      / *文件的其余部分省略* /

      根据您的css设置,您可能需要更多文件。

答案 1 :(得分:3)

在提交代码并将其推送到heroku之前,请尝试使用rake assets:precompile

答案 2 :(得分:3)

阅读this,这是关于如何在heroku上运行rails 3.2.1(和ruby 1.9.3)的教程。显然,您可以跳过不需要的位,但它应该解释为什么会出现这些问题以及如何解决这些问题。

另外,阅读有用的asset_sync gem的作者david rice的this文章。它可以帮助你解决这个问题。