Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sass 指南针don';t编译@charset规则_Sass_Compass Sass - Fatal编程技术网

Sass 指南针don';t编译@charset规则

Sass 指南针don';t编译@charset规则,sass,compass-sass,Sass,Compass Sass,我在我的\u base.scss部分中有@charset“utf-8”规则,当我在主文件中导入\u base.scss时@charset rule不编译。 我尝试了@viewport{width:devicewidth;},它编译得很好,但是@charset没有。知道问题出在哪里吗 是的,这是我的_base.scss partial中的第一条规则,我尝试了其他CSS@rules,它们工作正常,但是@charset不想在.CSS文件中编译。基于for@charset它看起来必须在样式表的第一行:

我在我的\u base.scss部分中有
@charset“utf-8”
规则,当我在主文件中导入\u base.scss时@charset rule不编译。 我尝试了
@viewport{width:devicewidth;}
,它编译得很好,但是@charset没有。知道问题出在哪里吗

是的,这是我的_base.scss partial中的第一条规则,我尝试了其他CSS@rules,它们工作正常,但是@charset不想在.CSS文件中编译。

基于for
@charset
它看起来必须在样式表的第一行:

添加@charset“编码名称”;在样式表的开头 (在任何空白或注释之前)和Sass将其解释为 给定编码。请注意,无论您使用什么编码,它都必须是 可转换为Unicode


好吧,我花了一些时间来解决这个问题。这是我认为是一个bug,尽管它可能被认为是SASS中的一个实际的“特征”。 因此,即使您在SASS文件中使用以下命令指定utf-8编码:

@charset "UTF-8";
…如果不使用任何非ascii字符,则实际上会删除字符集定义。目前(就我所能找到的)在任何SASS发行版中都没有解决这个问题的方法——我努力寻找

因此,为了强制将字符集定义呈现到output.css文件中,我添加了以下虚拟类,该类包含一个非ascii字符,并使其立即开始吐出字符集:

//In your main .scss file - first line, first character:
@charset "UTF-8";
[more code...]
然后,在属于SASS编译的任何文件中,添加以下规则:

.force-UTF-8{
    content: "¡";
}
您可以为规则命名任何您想要的名称,并且您可以将该反向感叹号更改为任何您想要的名称,只要它是非ascii字符。您可以通过按住“alt”并在numpad上单击“0-1-6-1”来键入该字符(至少在windows上)。只需谷歌搜索非ascii字符,您就应该能够找到它


我知道这不太理想,但很有效。

这没有帮助,因为我已经走了这条路。我和OP有同样的问题,我的SASS仍然不会输出字符集规则,即使使用字符集指令作为第一行/字符或样式表。还有其他想法吗?我有另一个相同设置的项目,输出@charset“UTF-8”;进入css,所以这不起作用很奇怪。。。!