ruby-on-rails – 在Rails 3.1中,真的不可能避免包含样式表的重复副本吗?

尝试在Sass样式表中共享变量和混合时,我遇到了一个令人不安的问题.

如果我使用@import来包含一个全局样式表,其中包括全局颜色,mixins等 – 当Rails组合清单文件中引用的所有样式表时,它将被再次包含.

或者,如果我的清单文件不包括全局样式表,但清单中的多个文件导入它,则全局样式表仍将被包含多次. GAH.

你怎么能解决这个问题?萨斯有秘密的包围守卫吗?我做错了吗?

解决方法

我不明白为什么这是您的具体问题的一个问题.变量和混合声明不应导致生成的css文件中的任何选择器或声明块.但是,当您为多个选择器使用mixin时,每个这样的选择器都包含相应的声明.这就是SASS如何处理它.

所以只要它只是变量和混合,如果它们在清单文件中被多次包含起来,这并不重要,因为这对编译文件没有影响.在一个站点节点上,我相信它是一个好的风格,SASS强制你明确声明每个文件的依赖关系.

但是,如果您在基本文件中还有要在单独文件中继承的选择器和声明,那么即使在编译过的文件中也可以包含多个选择器和声明.知道如何通过配置来防止这一点仍然是有趣的.但是,如果您将每个sass文件视为一个封装的规则,而不会跨文件继承,那么您应该能够按照惯例阻止您的问题.

例如,使用bootstrap-sass时,只能将混合和变量定义带入范围;

@import "bootstrap/variables";
@import "bootstrap/mixins";

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...