【问题标题】:Sass::SyntaxError: Invalid CSS after "*": expected selector, was "= require boots..."Sass::SyntaxError:“*”之后的无效 CSS:预期选择器,是“= 需要引导...”
【发布时间】:2018-06-19 06:23:40
【问题描述】:

我在做资产时遇到以下错误:使用ruby 2.4.3 和rails 5.1.4 进行预编译

Sass::SyntaxError:“*”后的 CSS 无效:预期的选择器是“=” 需要靴子...”

RAILS_ENV=production rails assets:precompile

application.scss 文件内容如下。

 *= require bootstrap-datepicker
 *= require datetimepicker
 *= require chosen
 *= require reports_kit/application
 *= require_tree
 *= require_self
 */

 @import "patternfly-sprockets";
 @import "patternfly";
 @import 'timepiece';

终端上的错误消息

$ RAILS_ENV=production rails assets:precompile --trace
** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Invoke yarn:install (first_time)
** Execute yarn:install
** Execute assets:precompile
rails aborted!
Sass::SyntaxError: Invalid CSS after "*": expected selector, was "= require boots..."
(sass):3333
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/scss/parser.rb:1207:in `expected'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/scss/parser.rb:1137:in `expected'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/scss/static_parser.rb:21:in `parse_selector'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/tree/visitors/perform.rb:428:in `visit_rule'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/tree/visitors/base.rb:36:in `visit'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/tree/visitors/perform.rb:162:in `block in visit'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/stack.rb:79:in `block in with_base'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/stack.rb:115:in `with_frame'
/home/fabritronix/.rvm/gems/ruby-2.4.3/gems/sass-3.4.25/lib/sass/stack.rb:79:in `with_base'

【问题讨论】:

    标签: ruby-on-rails sass production-environment


    【解决方案1】:

    尝试以下最佳做法

    从application.scss中删除以下行

     *= require bootstrap-datepicker
     *= require datetimepicker
     *= require chosen
     *= require reports_kit/application
     *= require_tree
     *= require_self
     */
    

    如果您需要这些库,请在 stylesheets 文件夹中创建一个文件,例如 custom.css,并将这些 CSS 库放在这里,并确保您的拼写正确,例如 *= require_tree .

    或者您可以将您的 application.scss 重写为 application.css.scss 更正诸如 *= require_tree . 之类的错字

    希望能帮到你

    【讨论】:

    • 为什么要把custom.css放在javascripts文件夹而不是stylesheet文件夹中?
    • 我创建了两个文件 application.scss 和 custom.css 并放置了各自的代码。现在在生产模式下它可以正确编译,但 css 不能在 html 上工作。即使在开发模式下,它也不会在您上面提到的更改后呈现 css。
    • 问题出在 bootstrap.css 文件中,如下所示。 $ sass -c app/assets/stylesheets/**.css* Error: Invalid CSS after "*": expected selector, was "= require boots..." on line 2 of app/assets/stylesheets/bootstrap.css 使用--trace 用于回溯。它的内容是############### //= 需要 bootstrap-select *= 需要 bootstrap/alert *= 需要 bootstrap/dropdown ############
    • 无论如何我通过删除 bootstrap.css 文件及其 gem 来解决它。
    • 伟大的@KiranPatil
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 2019-11-26
    • 2016-06-13
    • 2019-05-15
    • 1970-01-01
    • 2018-11-20
    相关资源
    最近更新 更多