【问题标题】:Rails - sprockets cannot recognize scss filesRails - 链轮无法识别 scss 文件
【发布时间】:2021-06-07 22:44:28
【问题描述】:

我最近将我的 Sprockets 从 3.7.2 升级到 4.0.2,从那以后我的 application.css 文件无法识别用 scss 编写的文件之一:

 *= require editor/content-tools.scss
 *=/ require_tree .
 *=/ require_self
 */

(editor/content-tools.scss 位于 vendor,而不是 app/assets)。

当我尝试执行它时,我收到了这个错误:

ActionView::Template::Error(找不到类型为“text/css”的文件“editor/content-tools.scss”

Sprockets 正在寻找一个“text/css”类型的文件,如果我将我的文件重命名为 content-tools.css,它将停止产生错误,从而消除与路径查找相关的可能问题。

所以我的问题是如何告诉 sprockets 像以前一样检查在我的 application.css 中查找具有 .scss 扩展名的文件?

【问题讨论】:

    标签: css ruby-on-rails sass ruby-on-rails-5 sprockets


    【解决方案1】:

    来自sass-rails

    Sprockets 提供了一些放置在 cmets 内部的指令,称为 require、require_tree 和 require_self。不要在你的 SASS/SCSS 文件中使用它们。它们非常原始,不能很好地处理 Sass 文件。相反,请使用 Sass 的原生 @import 指令,该指令 sass-rails 已自定义以与 Rails 项目的约定集成。

    所以你可以通过以下方式实现:

    1. 将application.css 重命名为application.scss

    2. 使用import 语法代替require:

    // application.scss
    
    @import "editor/content-tools.scss";
    
    @import "*";
    

    【讨论】:

      猜你喜欢
      • 2016-10-23
      • 2017-10-15
      • 1970-01-01
      • 2016-09-12
      • 2018-08-29
      • 1970-01-01
      • 2015-11-11
      • 2018-02-15
      相关资源
      最近更新 更多