2011-06-27 40 views
5

我在資產/樣式表目錄中設置了一組[對象] .css.scss樣式,以與我的應用程序中的不同視圖相對應。每片在第一線上的一組全局樣式變量值:Rails 3.1 - 強制SCSS變量值刷新?

@import "branding.css.scss"; 

,然後在需要($ primaryColor,$ secondaryColor等)時,整個庫訪問變量值。

它非常乾燥,但不幸的是,當我更改_branding.css.scss文件中的變量值時,Rails不會刷新對象樣式表。在SCSS重新編譯具有更新的變量值的對象樣式庫之前,我必須去觸摸每個文件。

這是一個輕微的抱怨,但它的破壞性工作流程,特別是當我不斷清除瀏覽器緩存試圖修復它:/

有沒有更好的方式來組織變量?

有什麼辦法強制刷新?

+1

的軌道團隊忽略了多年來發展起來的Sass慣例,並試圖在將它與Sprockets(旨在與「愚蠢的」CSS一起工作)結合時支持語法。我很想聽聽有關如何將Sprockets的行爲更改爲Sass自動編譯行爲的建議(如果有任何文件發生更改,請在tmp目錄中緩存),但我認爲我們不會找到一。這些資產管道問題在RC中可能會持續至少幾個星期。 – coreyward

回答

1

這的確很煩人...

我沒有一個完整的解決方案,但有一件事我發現是,所有你需要做的就是觸摸「application.css.scss」得到它重新編譯一切。

我最近開始使用guard-compass和guard-livereload,但它在3.1中有相同的問題。也許有人比我更聰明可以修復它,以便它觸及'application.css.scss'?

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; } 
+0

你的意思是application.css?我試過這個,並沒有強制刷新。我在Win7上開發,因爲我是一個受虐狂,也許這就是爲什麼。 – RSG

+0

是的,我很抱歉!我沒有注意到任何問題,但也許嘗試'* = require includes'而不是'* = depend_on includes',看看是否有效?也可能需要查看Sprockets文檔:https://github.com/sstephenson/sprockets – sausman