Sass-去掉inspect生成的字符串周围的引号



在这个最小sass示例中,我尝试连接一个字符串和inspect()生成的字符串

// Can not be changed:
@function get-filename() {
$filename: inspect("foo.jpg");
@return $filename;
}
// My code:
$url: "path/" + get-filename(); 
body {
background-image: url($url);
}

然而,这并没有按要求解决,因为foo.jpg周围有报价

body {
background-image: url('path/"foo.jpg"');
}

你能告诉我如何更正我的代码,使解析css为:吗

body {
background-image: url('path/foo.jpg');
}

正如注释中所述,在我的应用程序中,我无法更改生成$filename的函数。

我认为$url: "path/" + unquote(get-filename());可以解决这个问题,但这似乎没有帮助。

unquote应该在这里工作,但当将其与inspect的结果相结合时,这似乎是Sass本身的一个错误。

您可以使用一个函数来删除字符串中的第一个和最后一个字符:

// Can not be changed:
@function get-filename() {
$filename: inspect("foo.jpg");
@return $filename;
}
@function dropOuterCharacters($input) {
@return str-slice($input, 2, str-length($input) - 1);
}
$url: "path/" + dropOuterCharacters(get-filename()); 
body {
background-image: url($url);
}

最新更新