2017-10-19 46 views
1

我有一個site_settings.scss文件,該文件包含了我的Rails應用程序的所有變量:攜帶所有表單文件薩斯變量在Rails的

app/assets/stylesheets/site_settings.scss 

$primary_color: #4285F4; 
$dark_color: #333333; 
... 

現在,如果我想裏面使用這些變量文件我需要做的這一點,文件中:

import 'site_settings.scss' 

我需要把這個在每個文件,我想用這些變量開始,否則Rails會給我Undefined variable:錯誤。

我試圖把import 'site_settings.scss'application.scsscustom.scss內,但兩者都沒有工作。

我也試圖在aplication.scss使用require 'site_settings'和重命名application.scss到application.css.scss這裏被提及:http://mildlyinternet.com/code/scss-variables-asset-pipeline.html,但它仍然沒有工作。

這裏是我的application.scss:

/* 
*= require_self 
*= require font-awesome 
*/ 

@import "bootstrap-sprockets"; 
@import "bootstrap"; 
@import "custom"; 
@import "devise"; 
@import "site_settings"; 

那麼,我該如何解決這個問題,這樣我就不必寫在每一個文件每次import 'site_settings.scss'

+0

您可以發佈application.css的內容是什麼? –

+1

@ PatrickO'Grady我已將它添加到帖子中 –

+0

您是否嘗試將其設置爲與鏈接文章完全相同?你有'application.css',有一個'* = require file_name'語句,然後'file_name.scss'與所有的導入? –

回答

1

您應該重命名所有將使用共享變量的文件,以_開頭。 這將在部分文件的上下文中呈現其他文件,這些文件將使用@import 'site_settings'中先前聲明的變量。所以你會有site_settings.scssquickrails/_general.scssquickrails/_media_query.scss等等。

那些導入被認爲是partials,這就是爲什麼這個名字應該以下劃線開頭,但是當導入時你沒有它。下面是一個關於這種材料:

Why put in front of the file name "_" or "_" in scss/css?

+0

它仍然無法正常工作。你可以看看這些文件嗎?這裏是鏈接:https://github.com/ryzalyusoff/Quickrails –

+0

啊哇終於.....修好了!謝謝! –