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
Heroku指南针buildpack指南针失败_Heroku_Gem_Compass Sass_Cedar - Fatal编程技术网

Heroku指南针buildpack指南针失败

Heroku指南针buildpack指南针失败,heroku,gem,compass-sass,cedar,Heroku,Gem,Compass Sass,Cedar,我正在尝试将compass构建包推送到heroku服务器 它一直工作到最近,我不确定heroku方面发生了什么,它不再工作了,给了我这个错误: bash: /app/.gem/ruby/1.9.1/bin/compass: /app/vendor/ruby-1.9.2/bin/ruby: bad interpreter: No such file or directory 我不知道发生了什么事,他们改变了ruby版本还是什么 是否有人知道问题和解决方法 我使用Cedar stack,运行节点编

我正在尝试将compass构建包推送到heroku服务器

它一直工作到最近,我不确定heroku方面发生了什么,它不再工作了,给了我这个错误:

bash: /app/.gem/ruby/1.9.1/bin/compass: /app/vendor/ruby-1.9.2/bin/ruby: bad interpreter: No such file or directory
我不知道发生了什么事,他们改变了ruby版本还是什么

是否有人知道问题和解决方法

我使用Cedar stack,运行节点

编辑 嗯,我错了。在我们的例子中,
compass:dist
任务由于一些错误的SASS而失败。这最终消除了这个错误。在我的霰弹枪修复方法中,我将Gruntile heroku任务编辑为:

grunt.registerTask('heroku', function () {
  grunt.log.warn('The `heroku` task has been deprecated. Use `grunt build` to build for deployment.');
  grunt.task.run(['compass:dist']);
});
在部署到heroku时,我注意到了错误

我还交换了构建包。我现在用的似乎还可以。抱歉,有点困惑,但希望能有所帮助

下面是原始答案。 不是一个真实的答案,但因为我还不能评论

也看到了这个错误。我认为这与我们正在使用的heroku节点指南针构建包有关

我尝试将
ruby:2.0.0
添加到我的
Gemfile
中,但没有任何区别。

我最终使用了“buildpack multi”

在小细节方面:

  • 用于在Heroku Cedar上运行节点,否则它会将服务器检测为Ruby堆栈(如果我没有弄错的话)

  • 拥有Node和Ruby multipack允许我使用从Ruby Gem安装Compass


  • 我想在接受的答案的基础上再加一点解释,因为我遇到了完全相同的问题,我相信大多数人都需要按如下方式取消旧的构建包:

    首先取消设置旧的buildpack并指向buildpack multi:

    heroku config:unset BUILDPACK_URL
    heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git
    
    Buildpack multi要求您添加自己的.buildpacks文件。这个配置就是我最后成功使用的:

    cat .buildpacks
    https://github.com/heroku/heroku-buildpack-nodejs.git
    https://github.com/heroku/heroku-buildpack-ruby.git
    
    这是我的GEM文件,仅用于拾取指南针:

    cat Gemfile
    source 'https://rubygems.org'
    gem 'compass'
    
    现在,您需要执行以下操作:

    bundle install
    
    这将添加一个Gemfile.lock

    将所有内容提交给git,并推回到heroku。这将启动新的多构建包配置,并有望让您恢复运行。您应该看到nodejs和ruby buildpacks都是按照上述配置连续下载的


    免责声明:这可能是时间敏感的材料,因为heroku在未来几个月可能会发生一些变化。

    我无法让多个构建包与我的应用程序配合使用,但我能够让位于的构建包再次与heroku配合使用:

    在bin/compile中,我添加了

    cp -r /app/vendor/ruby-1.9.2 $build_dir/vendor
    

    在脚本检查缓存并更新或安装compass之后,在它缓存ruby gems之前。

    这里的答案似乎过时了

    根据最新文档,您可以从命令行为应用程序指定多个构建包:

    heroku buildpacks:set heroku/ruby
    heroku buildpacks:add heroku/nodejs
    
    这将确保我们首先运行ruby。然后,我们运行并启动节点应用程序。指南针随后可用

    只需添加一个包含以下内容的文件:

    source 'https://rubygems.org'
    gem 'compass'
    

    所以我尝试了heroku buildpack nodejs grunt,但是grunt现在抱怨Compass没有安装,即使heroku运行“Compass-v”会显示它安装了。您是否手动安装并运行grunt?