我正在升級包含大量SCSS樣式表的rails應用程序以使用資產管道,並且需要爲每個文件包含一些全局變量和mixins。在Rail資產管道中持續存在SCSS變量?
在每個文件的頂部添加幾個@import
指令不是很乾,所以我喜歡做這樣的事情:
# application.css
/*
*= require variables
*= require mixins
*= require_tree .
*/
這並不當然的工作,因爲變量不跨文件持久。任何人都知道如何做到這一點?
我正在升級包含大量SCSS樣式表的rails應用程序以使用資產管道,並且需要爲每個文件包含一些全局變量和mixins。在Rail資產管道中持續存在SCSS變量?
在每個文件的頂部添加幾個@import
指令不是很乾,所以我喜歡做這樣的事情:
# application.css
/*
*= require variables
*= require mixins
*= require_tree .
*/
這並不當然的工作,因爲變量不跨文件持久。任何人都知道如何做到這一點?
默認清單語法是沒有強大到足以讓你有用薩斯功能,如共享變量,混入等相反,你應:
而不是使用
/*
*= require variables
*= require mixins
*= require_tree .
*/
廢話,你現在應該使用
@import "variables";
@import "mixins";
@import "blah"; // import each SCSS file in your project like this.
這將確保您可以在整個項目中充分利用變量和mixins,並且您保持爲DRY as Sas s允許。
似乎不可能。結束每個文件@import 'includes/all';
幷包括includes/all.css.scss
其他所有內容。
簡單地從每個Scss或Sass文件導入必要的文件似乎已經爲我工作。例如,我有一個包含一些常數這樣的colors.scss文件:與一些其他文件清單
$black: #222;
我需要在我application.css:
/*
*= require colors
*= require buttons
*/
在我的按鈕。 css.scss文件,我只是這樣做是爲了避免錯誤:
@import "colors";
這裏的文檔也可能有幫助:https://github.com/rails/sass-rails/ – 2012-07-06 08:12:32
這並不能解決問題。目標是避免需要從每個scss文件導入它們。你的答案和我的一樣。無論如何,謝謝:) – Zubin 2012-07-07 02:23:31
同意。這也是我一直在做的。 – Zubin 2013-04-26 00:46:27
這個解決方案值得指出一個煩惱,那就是你的所有css都會以一個文件結尾。使用application.css的想法是,它仍然單獨加載每個css文件(在dev中),這可以幫助進行QA,因爲您知道每個文件都包含在網絡流量中。 (授予sass您仍然可以檢查問題並在SASS添加的註釋中查看它來自的.scss文件) – gcoladarci 2013-12-14 13:32:31
我相信您可以使用rails輸出源地圖(http://fonicmonkey.net/2013/03/25/ native-sass-scss-source-map-support-in-chrome-and-rails /),所以你可以直接檢查源文件。 – 2013-12-17 17:59:52