【发布时间】:2014-05-20 12:50:22
【问题描述】:
快速总结我们的问题:
- 我们在编译后的 CSS 文件中添加了 @charset 声明
- 我们的 SCSS 文件没有此声明,因此它会在编译期间添加
- 我的一位同事说,如果我们有该声明,我们的网站会在 Safari 中中断
SASS 文档说:
输出编码
一般来说,Sass 会尝试使用与输入样式表相同的编码对输出样式表进行编码。但是,为了做到这一点,输入样式表必须有一个@charset 声明;否则,Sass 将默认将输出样式表编码为 UTF-8。此外,如果不是纯 ASCII,它会在输出中添加一个 @charset 声明。
当其他带有@charset 声明的样式表被@imported 时,Sass 会将它们转换为与主样式表相同的编码。
来源:http://sass-lang.com/documentation/file.SASS_REFERENCE.html
有谁知道防止 SASS 添加它的方法吗?
有谁知道我们如何检查所有 SCSS 文件的“如果不是纯 ASCII”假设?
还有其他想法吗?
【问题讨论】:
-
您的 CSS 中是否有任何 UTF-8 字符,即使在 cmets 中也是如此?你运行的是什么版本的 Ruby 和 Sass?你在使用指南针吗?哪个版本?您希望 CSS 编译成什么字符集?
-
您是否偶然使用 Codekit 编译 SASS?当我这样做时,我也会在我编译的 CSS 文件中得到一个字符集声明。当我通过终端/使用 gulp 编译它时,我没有。
-
@NilsKaspersson 不,我们不使用 Codekit。
-
@KatieK 我们的 cmets 中有字符,例如 ø、ruby 2.0.0p451(2014-02-24 修订版 45167)、sass-3.3.7,我们正在使用 Grunt 进行编译。
-
你找到解决办法了吗?
标签: encoding character-encoding compilation sass