我知道有很多这样的问题,但似乎都没有解决我的问题。
我通过django-pipelines运行ruby SASS。
在部署期间,管道通过命令python manage.py collectstatic --noinput
编译一些SASS文件,该命令由Heroku自动完成。
以前我没有遇到任何问题。我最近回到代码,现在当我部署到Heroku时,我收到以下错误(full error log can be found here):
File "/app/.heroku/python/lib/python2.7/site-packages/pipeline/compilers/__init__.py", line 126, in execute_command
"{0!r} exit code {1}\n{2}".format(argument_list, compiling.returncode, stderr))
pipeline.exceptions.CompilerError: ['/usr/bin/env', 'sass', '--load-path', '/app/app/static', '--load-path', '/app/app2/static', u'/app/staticfiles/app2/stylesheets/app2.scss', u'/app/staticfiles/app2/stylesheets/app2.css'] exit code 1
/tmp/build_8d2e04464970e15667c8f825fc387c8a/myapp-8b763976868799a3f147ac8cedbd82421efa7525/vendor/ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- bundler/setup (LoadError)
from /tmp/build_8d2e04464970e15667c8f825fc387c8a/myapp-8b763976868799a3f147ac8cedbd82421efa7525/vendor/ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /tmp/build_8d2e04464970e15667c8f825fc387c8a/myapp-8b763976868799a3f147ac8cedbd82421efa7525/vendor/bundle/bin/sass:14:in `<main>'
! Error while running '$ python manage.py collectstatic --noinput'.
正如您所看到的,我之前使用过Ruby 2.2.2进行了部署,但是现在已经在Heroku上将Bundler从1.9.7更新到1.11.2。
Sass是相同的版本(3.4.19)。
上一次成功部署在heroku上的bin / sass第14行。
$ sass --version
Sass 3.4.19 (Selective Steve)
$ cat ./vendor/bundle/bin/sass | sed '14!d'
require 'bundler/setup'
$ bundle --version
Bundler version 1.9.7
奇怪的是,我本地版本的bin / sass的内容与Heroku上的内容完全不同。
$ cat ~/.rvm/gems/ruby-2.2.2@app/bin/sass | sed '14!d'
str = ARGV.first
在本地,我正在运行Ruby 2.2.2并尝试了捆绑器1.10.6和1.11.2。 这是我的Gemfile:
source 'https://rubygems.org'
ruby '2.2.2'
gem 'sass', '3.4.19'
答案 0 :(得分:1)
我遇到了与您相同的问题,发现唯一的解决方案是使用Compass Compiler切换出SASS编译器(使用django-pipeline-compass
软件包安装)。请参阅Andrew的回答:https://stackoverflow.com/a/31420009/6080975