Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment therubyracer无法建立在heroku的基础上_Deployment_Heroku_Ruby On Rails 3.1 - Fatal编程技术网

Deployment therubyracer无法建立在heroku的基础上

Deployment therubyracer无法建立在heroku的基础上,deployment,heroku,ruby-on-rails-3.1,Deployment,Heroku,Ruby On Rails 3.1,我制作了一个Rails 3.1 PoC应用程序,通过改编railstutorial.org书中的示例,它也使用了haml,并且在本地一切正常。 但是当我尝试推送到heroku时,无法在服务器上构建(): 我的标准很高,所以如果有人能帮助我了解出了什么问题,也许能帮我找到解决方案,我将不胜感激。您需要使用 只需在GEM文件中定义一对组,即可在需要时安装正确的组 group :development, :test do gem 'therubyracer' end group :product

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

我的标准很高,所以如果有人能帮助我了解出了什么问题,也许能帮我找到解决方案,我将不胜感激。

您需要使用

只需在GEM文件中定义一对组,即可在需要时安装正确的组

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

group :production do
  gem 'therubyracer-heroku'
end
Heroku使用
therubyracer
therubyracer Heroku
,因为这些宝石使用非常大的内存

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

您有两种选择:

  • 'therubyracer',:platforms=>:ruby
    添加到
    组:assets
    并升级您的ruby版本。然后删除Gemfile.lock并运行
    捆绑安装

  • 运行
    assets:precompile
    在本地机器上,并将它们推送到heroku(别忘了从生产中删除therubyracer宝石)

  • 默认情况下,Rails资产管道支持Sass语言。您可以使用

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

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

    group :development, :test do
      gem 'therubyracer'
    end
    
    group :production do
      gem 'therubyracer-heroku'
    end