2

我制作了一个 Rails 3.1 PoC 应用程序,该应用程序也使用了 haml,方法是改编 railstutorial.org 书中的示例,并且在本地一切正常。
但是当我尝试推送到heroku时,therubyracer无法在服务器上构建完整输出

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非常标准,所以如果有人能帮助我了解出了什么问题,并可能帮助我找到解决方案,我将不胜感激。

4

3 回答 3

4

这些答案已经过时了。您现在可以therubyracer在两种环境中使用,只要您有版本 '>= 0.11.2'

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

于 2013-01-15T20:30:43.143 回答
1

Heroku不再需要,但强烈反对使用therubyraceror therubyracer-heroku,因为这些 gem 使用大量内存。

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

您有 2 个选择:

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

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

  3. Rails 资产管道默认支持 Sass 语言。rails-bootstrap您可以使用 gem (LESS)而不是bootstrap-sass-rails
于 2013-01-11T10:40:16.750 回答
1

您需要使用therubyracer-heroku

只需在您的 Gemfile 中定义一对组,以便在需要时安装正确的组。

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

group :production do
  gem 'therubyracer-heroku'
end
于 2011-06-06T23:24:48.513 回答