Rails 3.1 - 强制SCSS变量值刷新?

时间:2011-06-27 23:04:16

标签: css caching ruby-on-rails-3.1 sass

我在assets / stylesheets目录中设置了一组[object] .css.scss样式,以便与我的应用程序中的不同视图相对应。每个工作表在第一行包含一组全局样式变量值:

@import "branding.css.scss";

然后在整个库中需要时访问变量值($ primaryColor,$ secondaryColor等)。

它非常干燥,但遗憾的是,当我对_branding.css.scss文件中的变量值进行更改时,Rails不会刷新对象样式表。在SCSS使用更新的变量值重新编译对象样式库之前,我必须去触摸每个文件。

这是一个小小的抱怨,但它会破坏工作流程,特别是当我不断清理浏览器缓存以尝试修复它时:/

有没有更好的方法来组织变量?

有没有办法强制刷新?

2 个答案:

答案 0 :(得分:3)

我一直把变量和mixin放到includes.css.scss文件中,然后将它们导入到需要它们的每个样式表中。要在更改包含文件时重新编译Rails,您需要在application.js中使用depend_on指令。例如:

<强> application.css

/*
   *= depend_on includes
   *= require_self
   *= require stylesheet
*/

<强> includes.css.scss

$bg-color: #999;

<强> stylesheet.css.scss

@import "includes.css.scss";

body { background: $bg-color; }

答案 1 :(得分:1)

这确实很烦人......

我没有一个完整的解决方案,但我发现有一件事是你需要做的就是触摸'application.css.scss'来重新编译所有内容。

我最近开始使用guard-compass和guard-livereload,但它在3.1中也有同样的问题。也许比我更聪明的人可以解决它,以便它也触及'application.css.scss'?