首页 > 解决方案 > Sass:如何获取当前 .sass 文件的文件系统的绝对路径?

问题描述

类似于@current_file_path()返回文件系统中文件的实际路径的东西?


我的实际问题如下。

我有一个带有它自己的.scss文件和相关图像的子模块。

子模块的样式包含在一个公共模块的文件中,该文件不在同一个目录中(实际上它在父目录中),如下所示:

@include "submodule/_style";

在子模块的文件中,我想这样写:

    background-image: url(image.jpg);

但我不能。因为所有的路径都是相对于公共模块文件的,因为只有它被编译成最终的 CSS,而不是当前的子模块文件。所以我必须这样做:

$submodule-dir: "submodule";
background-image: url("$submodule-dir/image.jpg");

所以我想做一个$submodule-dir自动计算当前文件的函数。可能吗?

标签: sass

解决方案


sass 中没有获取当前文件路径的函数。

它遵循正常的 css 语法。所以你必须在你的子模型中定义路径。
但是我们可以创建一个函数来让我们更容易:

像这样:

$currentModule: "../submodule/image/";

@function setUrl($file) {
  @return url($currentModule + $file);
}

.main {
  background-image: setUrl("file.jpg");
}

推荐阅读