therubyracer无法在heroku上构建

时间:2011-06-06 23:22:59

标签: deployment heroku ruby-on-rails-3.1

我已经制作了一个Rails 3.1 PoC应用程序,该应用程序也通过调整railstutorial.org书中的示例来使用haml,并且本地一切正常。 但是,当我尝试推送 heroku 时, therubyracer 无法在服务器上构建full output:< / p>

Installing therubyracer (0.8.2) with native extensions /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

我的Gemfile非常标准,所以如果有人能帮我理解出了什么问题,我真的很感激,也许可以帮我找到解决方案。

3 个答案:

答案 0 :(得分:4)

这些答案已过时。您现在可以在两种环境中使用therubyracer,只要您的版本为'&gt; = 0.11.2'

我应该注意到我是therubyracer的作者,并且在资产编译时和运行时都在几个生产heroku应用程序中使用它

答案 1 :(得分:1)

您需要使用therubyracer-heroku

只需在Gemfile中定义一对组,即可在需要时安装正确的组。

group :development, :test do
  gem 'therubyracer'
end

group :production do
  gem 'therubyracer-heroku'
end

答案 2 :(得分:1)

Heroku no longer requires, but strongly discourages使用therubyracertherubyracer-heroku,因为这些宝石使用了大量的内存。

如果您正在使用它们,则下一次部署将失败!

您有两个选择:

  1. 'therubyracer', :platforms => :ruby添加到group :assets并升级您的ruby版本。然后删除Gemfile.lock并运行bundle install

  2. 在本地计算机上运行assets:precompile并将它们推送到heroku(不要忘记从生产中删除therubyracer gems);

  3. Rails资产管道默认支持Sass语言。您可以使用bootstrap-sass-rails
  4. 代替rails-bootstrap gem(LESS)