【问题标题】:Can't Precompile Assets Rails 4 bootstrap-sass DXImageTransform error [duplicate]无法预编译资产 Rails 4 bootstrap-sass DXImageTransform 错误 [重复]
【发布时间】:2014-12-30 19:15:36
【问题描述】:

我正在尝试为生产预编译资产。除非我将 bootstrap 和 font-awesome 资产包含为静态文件(或来自 CDN 的主机),否则 sass-rails 在尝试在生产环境中编译资产时会失败。我的 Gemfile 看起来像这样:

# Default asset gems
gem 'coffee-rails', '~> 4.0.0'
gem 'sass-rails'  , '~> 4.0.3'
gem 'uglifier'    , '>= 1.3.0'

# Default gems
gem 'jbuilder', '~> 2.0'
gem 'sdoc'    , '~> 0.4.0', group: :doc

# Added gems
gem 'carrierwave'
gem 'pg'
gem 'turbolinks'
gem 'restforce'

# Asset gems
gem 'jquery-rails'
gem 'autoprefixer-rails'
gem 'bootstrap-sass'
gem 'font-awesome-sass'
gem 'handlebars_assets'
gem 'iconv'

当我尝试编译资产时,出现以下错误:

➜  stylesheets git:(master) ✗ rake assets:precompile
(in /home/ubuntu/spice-conduit)
rake aborted!
Sass::SyntaxError: Invalid CSS after "    filter: progid": expected ";", was ": DXImageTransf..."
  (in /home/ubuntu/spice-conduit/app/assets/stylesheets/application.css)
(sass):3566
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1147:in `expected'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1085:in `expected'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1080:in `tok!'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:586:in `block in declaration_or_ruleset'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1123:in `call'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1123:in `rethrow'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:592:in `declaration_or_ruleset'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:554:in `block_child'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:546:in `block_contents'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:535:in `block'
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:529:in `ruleset'

app.css 文件:

 * You're free to add application-wide styles to this file and they'll appear at the top of the
 * compiled file, but it's generally better to create a new file per style scope.
 *
 *= require jquery-ui
 *= require sweetalert
 *= require vendors
 *= require_tree .
 */

我的 scss 文件:

@import "font-awesome-sprockets";
@import "font-awesome";
@import "bootstrap-sprockets";
@import "bootstrap";

我在这里看到了这个问题:https://github.com/rails/sass-rails/issues/37 但这个问题已经存在好几年了。

【问题讨论】:

    标签: ruby-on-rails-4 sass asset-pipeline sprockets bootstrap-sass


    【解决方案1】:

    删除progidDXImageTransform.Microsoft.gradient 之间的空格。

    例如,

    旧语法

    filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;

    新语法

    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;

    您可以在 NEW SYNTAX 中看到,我删除了 progidDXImageTransform.Microsoft.gradient() 之间的多余空格。

    【讨论】:

    • 我不敢相信空格是问题所在。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    相关资源
    最近更新 更多