rails Application.css.scss不了解使用的其他SCSS文件



我正在关注M Hartl的Rails教程,并尝试添加bootswatch主题。

我已经使用教程中定义的boostrap-sass宝石和网络中的Twitter-bootswatch-rails gem取得了成功。

但是,在Hartl的教程中,除默认的Bootstrap外,我们编写的所有CSS都在单独的Custom.css.scss文件中。

我的application.css.scss文件(从rails默认.css重命名)包含

@import "bootstrap-sprockets";
// Import cerulean variables
@import "bootswatch/cerulean/variables";
// Then bootstrap itself
@import "bootstrap";
// And finally bootswatch style itself
@import "bootswatch/cerulean/bootswatch";
@import "custom";

有效的

但是,custom.css.scss文件具有$ gray-light的引用,$ gray-light是bootstrap中的变量集。服务器将在CSS文件中的变量参考上返回错误,除非我添加

@import "boostrap-sprockets";
@import "bootstrap";

to custom.cs.

最终结果,我现在使用了两个巨大的CSS文件,因为我认为没有理由。

我认为

的想法
@import "custom";

将我的custom.css.scss文件包括在应用程序中。

另一种有效的方法是将我的整个Custom.css.scss contents转移到application.css.scss.css.scss.css.scss.css.scss。

我做错了吗?

编辑:为了在火灾中添加更多燃料,我从custom.css中删除了两行,而是`@import bootswatch/cerulean/variables';;它有效。但是,网站本身的结果CSS本身具有该文件一无所有。

这可能是错误的,但是我向我自己的问题发布了一个答案,如下所示:

看来,链轮线//= require_self//= require_tree,即使在清单的注释部分中列出了默认情况下的注释部分,实际上也在运行。

然后,这会导致每个"需要"的文件单独编译。结果,我没有获得一个application-FINGERPRINT.css文件,而是获得了一个应用程序,一个自定义和一个static_pages。我认为这是" require_tree"行。

删除这些行后,@Import"自定义";线路正常工作。这些文件都合并到application-FINGERPRINT.css文件中,我不再需要@Import在custom.scss的顶部。

最新更新