我在资产管道中的Rails 3.2项目中使用AngularJS 1.5。当我像这样编译资产时;
rake assets:precompile
尝试编译时出现此错误
/usr/local/rbenv/versions/2.1.5/bin/ruby ./bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
Multithreading on 1 processors
Starting Asset Compile: 2016-05-02 01:49:20 UTC
/usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rails-assets-angular-material-1.1.0.rc4/app/assets/stylesheets/angular-material/layouts/angular-material.layouts.ie_fixes.scss:25: Invalid CSS after "and ": expected "{", was "(max-width: 599..." (Sass::SyntaxError)
(in /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rails-assets-angular-material-1.1.0.rc4/app/assets/stylesheets/angular-material/layouts/angular-material.layouts.ie_fixes.scss)
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:1189:in `expected'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:1125:in `expected'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:1120:in `tok!'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:656:in `block'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:409:in `media_directive'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:222:in `special_directive'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:197:in `directive'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:675:in `block_child'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:668:in `block_contents'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:125:in `stylesheet'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:41:in `parse'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/engine.rb:406:in `_to_tree'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/engine.rb:281:in `render'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-rails-3.2.6/lib/sass/rails/template_handlers.rb:106:in `evaluate'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/context.rb:193:in `block in evaluate'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/context.rb:190:in `each'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/context.rb:190:in `evaluate'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/processed_asset.rb:16:in `initialize'
rake aborted!
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:18:in `new'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:18:in `block in build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/base.rb:270:in `circular_call_protection'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:14:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:93:in `block in build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/caching.rb:19:in `cache_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:92:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/base.rb:169:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/index.rb:14:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/bundled_asset.rb:12:in `initialize'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:22:in `new'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:22:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:93:in `block in build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/caching.rb:19:in `cache_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:92:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/base.rb:169:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/index.rb:14:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/manifest.rb:178:in `block in find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/manifest.rb:199:in `benchmark'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/manifest.rb:177:in `find_asset'
EOFError: end of file reached
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:101:in `block (2 levels) in worker'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:98:in `block in worker'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:90:in `fork'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:90:in `worker'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:30:in `block (2 levels) in compile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:29:in `times'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:29:in `block in compile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:10:in `compile'
from /home/map7/code/pais/config/initializers/sprockets_derailleur.rb:11:in `compile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/tasks/assets.rake:108:in `internal_precompile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/tasks/assets.rake:115:in `block (3 levels) in <top (required)>'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'
from ./bin/rake:16:in `load'
from ./bin/rake:16:in `<main>'
/home/map7/code/pais/config/initializers/sprockets_derailleur.rb:11:in `compile'
Tasks: TOP => assets:precompile:all
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [/usr/local/rbenv/versions/2.1.5/bin/ruby ....]
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
如果我将angular-material.layouts.ie_fixes.scss文件重命名为gem中的.bak,那么它可以工作,但这不是一个好的解决方案。
有没有办法在资产中排除此文件:precompile?
更新
以下是angular-material.layouts.ie_fixes.scss文件中的行,我认为它实际上是抱怨第23行,即使它说的是25。
23 @media screen\0
24 and (max-width: 599px) {
25 .flex-xs {
26 -webkit-flex: 1 1 0%;
27 -ms-flex: 1 1 0%;
28 flex: 1 1 0%;
29 }
30 }
更新
这是我的application.scss文件的顶部部分
/*
*= require angular-bootstrap
*= require angular-xeditable
*= require app/bower_components/angular-material/angular-material.min
*= require app/bower_components/angular-material-data-table/dist/md-data-table
*= require textAngular
*= require header
*= require nav
*= require tables
*= require error
*= require help
*= require dashboard
*= require listing
*= require form
*= require timesheets
*= require invoices
*= require reports
*= require print
*= require jquery.ui.datepicker
*= require font-awesome
*= require ng-table
*/
/*
all.css.scss
Holds global styles for common elements throughout all pages which are not covered in specific stylesheets.
*/
@import "global.css.scss";
@import url(https://fonts.googleapis.com/css?family=Roboto:300,500,700);
...
答案 0 :(得分:0)
这是角度素材中的一个已知问题,您可以从here看到。
github问题中提出的一种可行的解决方法是添加
@import "angular_material_fixed";
到您的application.scss,然后在/app/assets/stylesheets/_angular_material_fixed.scss.erb中添加一个包含以下代码的新文件
<%=
# Workaround for this issue: https://github.com/angular/material/issues/6304
# TODO: remove this once angular-material 1.0.6 is released
original = File.read(File.expand_path('../../../../../vendor/assets/javascripts/bowe r_components/angular-material/angular-material.scss', __FILE__))
original.gsub('screen\0', 'screen ')
%>
它是一个黑客,但它应该工作