ruby-on-rails - 导入的 css 文件不会编译成 application.css 文件
问题描述
我有一个 style.scss 文件,我在其中导入了许多其他文件,例如
@import url(asset-path('bootstrap/css/bootstrap.min.scss'));
@import url(asset-path('ionicons/css/ionicons.min.scss'));
@import url(asset-path('slick-carousel/slick/slick.scss'));
@import url(asset-path('slick-carousel/slick/slick-theme.scss'));
@import url(asset-path('owl-carousel/assets/owl.carousel.min.scss'));
@import url(asset-path('owl-carousel/assets/owl.theme.default.scss'));
@import url(asset-path('owl-carousel/assets/carousel.min.scss'));
@import url(asset-path('bxslider/jquery.bxslider.min.scss'));
@import url(asset-path('magicsuggest/magicsuggest-min.scss'));
这些文件位于 vendor/ 目录下。
在生产模式下查看网络选项卡,服务器向每个从 scss 文件中导入的文件发出请求,而不是在文件下编译它们。
我也在使用 sass rails gem。我对 Rails 资产管道有什么不了解的地方吗?
解决方案
混乱来自这样一个事实,即 SASS 以某种方式覆盖了 @import 指令。
在您的情况下,使用纯CSS 的 @import 指令,因为您正在传递url(..
,正如您注意到的那样,它会为每个文件发出 HTTP 请求。
为了使用 SASS 的 @import 版本(它将导入和组合内容),您需要在引号中传递文件:
...
@import 'slick-carousel/slick/slick.scss';
...