2013-06-05 69 views
14

使用Sass(SCSS)/ Compass,是否可以從外部託管的文件中將一些CSS/SCSS導入到您的代碼中?我可以導入sass的外部託管文件嗎?

我在CDN上託管一個jQuery插件,並希望將CSS保留在同一位置,所以我不會丟失它。不過,我也希望能夠將CSS拉入我的代碼中,並在我的主CSS中進行編譯,而不是在HTML中拉入額外的CSS文件。這可能嗎?

回答

9

Sass不會編譯遠程位置的任何文件,所有文件都必須可以從文件系統(本地硬盤,共享網絡驅動器,掛載驅動器等)訪問。

Sass也根本不編譯CSS文件https://github.com/nex3/sass/issues/556

@import "my.css"; 

編譯成

@import "my.css"; 

也許你可能會感興趣的Compass extensions

+1

你的答案是沒有真正涉及到的問題。他問他是否可以在Sass中使用外部託管的CSS文件,而不是關於本地CSS文件的任何內容。我敢肯定,Sass並沒有將CSS文件編譯成其輸出文件。 – Vince

+5

@Ghodmode也許你應該重讀這個問題:「我也想選擇能夠將CSS拉入我的代碼並在我的主CSS中進行編譯」。我不知道如何解釋。由於您獲得相同的結果,文件的位置無關緊要。目前,Sass不會去做所要求的事情。 – cimmanon

+1

@cimmanon您的評論不完全正確。 Sass將直接將一個.scss文件導入到目標文件中,即它將編譯,就像您在該文件內寫入導入的內容一樣。但是,導入的.css文件,url()或以http://開頭的任何導入都將編譯爲「@ import」。這意味着您仍然可以嘗試刪除額外的HTTP請求。該位置很重要。 –

8

你當然可以。在這種情況下,它的工作原理與標準CSS @import規則完全相同。只需將它提供給CDN託管的CSS文件的URL即可。

http://sass-lang.com/documentation/file.SASS_REFERENCE.html#import

+1

我錯過了什麼,或者你的鏈接是否明確表示它不是*可能? –

+0

Sass擴展了CSS @import規則以允許它導入SCSS和Sass文件。所有導入的SCSS和Sass文件將合併成一個CSS輸出文件。另外,在主文件中可以使用在導入文件中定義的任何變量或mixin。 – Vince

+1

「,而@import」http://foo.com/bar「;'會編譯爲」@import「http://foo.com/bar」;'「。如果您導入外部託管的Sass/SCSs文件,則導入將被編譯爲最終結果,就像它是CSS導入一樣。 –

2

是的,你可以使用PostCSS Import URL Plugin導入外部 css文件。它會將外部CSS拉入你的代碼中,所以你可以在你的主CSS中編譯它。

0

對於那些你們誰來到這裏尋找導入CDN作爲SASS @import的一種方法,我在這裏找到了答案:https://github.com/webpack-contrib/sass-loader/issues/246

這是你(使用引導作爲一個例子)是如何做到這一點:

styles.scss

@import url("https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap.min.css"); 
相關問題