我已经制作了一个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非常标准,所以如果有人能帮我理解出了什么问题,我真的很感激,也许可以帮我找到解决方案。
答案 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使用therubyracer
或therubyracer-heroku
,因为这些宝石使用了大量的内存。
如果您正在使用它们,则下一次部署将失败!
您有两个选择:
将'therubyracer', :platforms => :ruby
添加到group :assets
并升级您的ruby版本。然后删除Gemfile.lock并运行bundle install
。
在本地计算机上运行assets:precompile
并将它们推送到heroku(不要忘记从生产中删除therubyracer gems);
bootstrap-sass-rails
rails-bootstrap
gem(LESS)
醇>