heroku资产:基础网站的预编译错误$ color

时间:2017-01-07 10:15:48

标签: ruby-on-rails angularjs heroku zurb-foundation bower

我有一个“angular of rails”应用程序,使用的是基础网站,我正在用凉亭安装。

每当我尝试推送到heroku时,它会因运行rake assets:precompile而出现以下错误:

remote:        rake aborted!
remote:        Sass::SyntaxError: $color: "foreground(#09798e)" is not a color for `red'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/assets/bower_components/foundation-sites/scss/util/_color.scss:19:in `foundation-badge'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/app/assets/stylesheets/foundation_and_overrides.scss:21
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/app/assets/stylesheets/cguides.scss:1
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/funcall.rb:310:in `reformat_argument_error'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/funcall.rb:149:in `rescue in _perform'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/funcall.rb:123:in `_perform'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/node.rb:58:in `perform'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/list_literal.rb:63:in `block in _perform'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/list_literal.rb:63:in `map'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/list_literal.rb:63:in `_perform'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/script/tree/node.rb:58:in `perform'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:471:in `visit_variable'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit'
remote:        /tmp/build_2017bed0c047fd92960507e2e0ee8a54/vendor/bundle/ruby/2.3.0/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `block in visit'
...

然而,当我在本地运行RAILS_ENV=production bundle exec rake assets:precompile时,它没有任何故障,这让我感到很困惑。

在我的bower.json文件中,我有:"foundation-sites": "latest",

但是,我只想说,当我输入heroku bash并检查vendor/assets/bower_components/foundation-sites/scss/util/_color.scss的内容时,它与我的本地版本略有不同。但没有提到文件中抱怨的$color: "foreground(#09798e)"

目前,我已经决定在推送之前在本地对资产进行预编译,但这样做太麻烦了,我需要弄明白这一点。

感谢。

1 个答案:

答案 0 :(得分:1)

我在本地运行rails应用程序时遇到同样的问题。看起来这个错误是由于gem foundation-rails 6.2.4和6.3.0之间的语法更改。

我通过在我的Gemfile中指定6.2.4来解决这个问题:

java.lang.reflect