2013-06-05 44 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"); 
相关问题