快速总结一下我们的问题:
我们有一个@ compilation
SASS文档说:
输出编码
通常,Sass将尝试使用与输入样式表相同的编码对输出样式表进行编码。为此,输入样式表必须有一个@charset声明;否则,Sass将默认将输出样式表编码为UTF-8。此外,如果不是纯ASCII,它将在输出中添加@charset声明。
当其他带有@charset声明的样式表被@imported时,Sass会将它们转换成与主样式表相同的编码。
来源:http://sass-lang.com/documentation/file.SASS_REFERENCE.html
有没有人知道防止SASS添加它的方法?
有谁知道我们如何在所有的SCSS文件上检查“如果不是普通的ASCII”假设?
还有其他想法吗?
发布于 2018-08-17 07:11:06
更重要的是,我最近遇到了这个问题。我们使用gulp-sass来编译我们的CSS。据我所知,如果你的CSS上有非ascii字符,gulp-sass (使用节点-sass)没有提供任何方法来阻止@charset "UTF-8";
。这对我们来说是个问题,因为我们想对AMP页面使用相同的CSS。AMP页面上不允许@charet。请参阅此问题。
https://github.com/sass/sass/issues/2288
我们的解决方案
我所做的是添加一个简单的gulp任务,以便从编译后的CSS中删除编码属性。
gulp.task('amp-sass-clean-up', ['amp-sass' /*Add gulp-sass task that compiles CSS*/], function() {
return gulp
.src(['/public/amp.min.css' /*This is the full path and file name to where your final css is*/], {cwd: '/public' /*This is the full path to where final css file is*/)
.pipe(replace('@charset "UTF-8";', ''))
.pipe(gulp.dest('/public' /*This is the full path to where final css file is*/);
});
发布于 2015-04-12 07:07:48
据我所知,@charset
对所有浏览器都有很好的支持,另请参阅:https://developer.mozilla.org/en-US/docs/Web/CSS/@charset。只有在CSS文件开头没有声明@charset
时,才会出现“旧”问题。另请参阅:https://github.com/Compass/compass/issues/211。
当你使用grunt编译你的SASS文件时,你可以在编译任务之后运行一个额外的任务来删除@charset声明。https://github.com/erickrdch/grunt-string-replace可以代替你。
https://stackoverflow.com/questions/23760355
复制相似问题