问题描述
我最近将我的 Sprockets 从 3.7.2 升级到 4.0.2,从那以后我的 application.css 文件无法识别用 scss 编写的文件之一:
*= require editor/content-tools.scss
*=/ require_tree .
*=/ require_self
*/
(editor/content-tools.scss 位于供应商中,而不是应用程序/资产中)。
当我尝试执行它时,我收到此错误:
ActionView::Template::Error(找不到类型为“text/css”的文件“editor/content-tools.scss”
Sprockets 正在寻找“text/css”类型的文件,如果我将文件重命名为 content-tools.css,它会停止产生错误,从而消除与路径发现相关的可能问题。
所以我的问题是如何告诉链轮检查在我的 application.css 中查找扩展名为 .scss 的文件,就像以前一样?
解决方法
Sprockets 提供了一些指令,它们放置在名为 require、require_tree 和 require_self 的注释中。不要在你的 SASS/SCSS 文件中使用它们。它们非常原始,不能很好地处理 Sass 文件。相反,请使用 Sass 的原生 @import 指令,该指令是 sass-rails 自定义的以与您的 Rails 项目的约定集成。
所以你可以通过以下方式实现:
-
将
Fatal error: Uncaught ArgumentCountError: Too few arguments to function has_product_categories()
重命名为application.css
-
使用
application.scss
语法代替import
:
require