Rails application.css.scss不知道正在使用的其他scss文件?

时间:2015-05-10 07:04:47

标签: css ruby-on-rails twitter-bootstrap sass bootswatch

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

我成功地使用了本教程中定义的boostrap-sass gem和来自网络的twitter-bootswatch-rails gem。

但是,在Hartl的教程中,除默认引导程序外,我们编写的所有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,一个在bootstrap中设置的变量。除非我添加

,否则服务器将在css文件中的变量引用处返回错误
@import "boostrap-sprockets";
@import "bootstrap";

到custom.css。

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

我想到了

的想法
@import "custom";

是将我的custom.css.scss文件包含到application.css.scss文件中,以便它可以在一个地方,并且变量可以很好地工作。

另一种有效的方法是将我的整个custom.css.scss内容转储到application.css.scss中,但这样做会破坏单独文件的作用。

我做错了吗?

编辑:为了给火添加更多燃料,我从custom.css中删除了两行,而是`@import bootswatch / cerulean / variables&#34 ;;它的工作原理。但是,网站上生成的CSS本身没有来自该文件。

1 个答案:

答案 0 :(得分:0)

这可能是错的,但我在自己的问题上回答如下:

看起来链轮线//= require_self//= require_tree,即使在默认情况下列在清单的评论部分内,实际上也在运行。

然后,这将导致每个“必需”文件被单独编译。因此,我得到的是应用程序,自定义和static_pages文件,而不是获取单个application-FINGERPRINT.css文件。我认为这是“require_tree”行。

删除这些行后,@ import“自定义”;线条像我预期的那样工作。这些文件都合并到application-FINGERPRINT.css文件中,我不再需要在custom.scss顶部@import任何内容。