问题
我正在尝试在编译*.scss文件后生成一些Unicode字符。
例如,我有以下内容(SCSS):
.element:after {
content: "\a0";
}
编译文件后,它会输出以下内容(CSS):
.element:after {
content: "\\a0";
}
请注意额外的不必要反斜杠(\)。
尝试的解决方案 #1
我尝试了这里的解决方案:Sass: unicode escape is not preserved in .css file,它建议引入以下函数:
@function unicode($str) {
@return unquote("\"")+unquote(str-insert($str, "\\", 1))+unquote("\"")
}
使用它的方式如下(SCSS):
.element:after {
content: unicode("a0");
}
然而,这会产生以下结果(CSS)
.element:after {
content: "\\" ")+unquote(str-insert($str, " \\\\ ", 1))+unquote(" \\ "";
}
注意,它甚至没有按预期调用函数。为什么会这样?
项目详情
我正在Maven中使用这些库:
<dependency>
<groupId>net.jawr</groupId>
<artifactId>jawr-core</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>net.jawr.extensions</groupId>
<artifactId>jawr-spring-extension</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.darrinholst</groupId>
<artifactId>sass-java-gems</artifactId>
<version>3.4.20.0</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-core</artifactId>
<version>9.1.5.0</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-stdlib</artifactId>
<version>9.1.5.0</version>
</dependency>
临时解决方案
不要在SCSS中使用Unicode,而是在HTML中使用Font Awesome(将Font Awesome保留在CSS文件中)。
content: "#{$breadcrumb-separator}\00a0"
和$breadcrumb-separator: "/" !default;
其结果是content: "/\\00a0"
:( - steve