在我的應用程序中,我有各種主題供用戶從特定的網頁中選擇。這些主題僅在顏色和字體類型方面有所不同。所以爲了不重複css聲明,我創建了一個scss文件,其中包含常見的css聲明ztheme.css.scss
,其中包含所有主題中的常見CSS樣式。我擁有各種主題scss文件(例如silver.css.scss
,melon.css.scss
- 如下所示),僅使用爲顏色和字體類型定義的變量值。在所有這些主題scss文件中,您可以在底部看到它將共同的ztheme.css.scss
導入爲@import 'ztheme'
。因此,當這些主題文件被編譯後,它們將具有適當的顏色和字體類型值的常見CSS樣式。Rails4資產預編譯失敗
silver.css.scss
$nav_bg_color: #F6F6F6;
$page_font: 'Sintony', sans-serif;
$page_txt_color: #000033;
@import 'ztheme';
melon.css.scss
$nav_bg_color: #F2F6C6;
$page_font: 'Arial', verdana;
$page_txt_color: #628002;
@import 'ztheme';
ztheme.css.scss
body{
padding-bottom: 20px;
background: $nav_bg_color;
font-family: $page_font;
text-rendering: optimizelegibility;
color: $page_txt_color;
}
問題是,當我在Heroku和資產預編譯揭開序幕部署此代碼,然後將其在ztheme.css.scss
失敗,因爲它尋找在其中定義的變量的值。並拋出這個錯誤:
remote: rake aborted!
remote: Sass::SyntaxError: Undefined variable: "$nav_bg_color".
remote: /tmp/build_ded002611a0752bd96038a671fd8051c/app/assets/stylesheets/themes/ztheme.css.scss:9
但是你可以看到,ztheme
正在導入在每一個主題文件,所以當ztheme
將這些文件導入,這些zthemes的價值應該得到適當的填充,它不應該拋出Undefined variable
錯誤。
如何解決這個問題?
我有我的構建資產如下: