Sass中资源引用相对路径问题

发布于 2022-09-04 15:47:33 字数 574 浏览 7 评论 0

资源组织目录如下图:
图片描述

在common.scss中使用相对路径引用了图片:

.status-unshelve{
    background-image: url(../img/status_unshelve.png);
}

目录pages中的样式文件引用了common.js:

@import '../common';

现在编译的时候就会找不到图片,如果把common中的图片引用路径改成相对于pages中文件的路径就没有问题:

.status-unshelve{
    background-image: url(../../img/status_unshelve.png);
}

但是pages中的样式文件并不一定都是同级,可能会有子目录,也会有问题。
有什么办法解决吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

晨曦慕雪 2022-09-11 15:47:33

引入图片或者文件的时候这样

background:url('~@/images/img.png')

或者采用绝对路径

过去的过去 2022-09-11 15:47:33

把图片转换成database64

data:image/png;base64,iVBORw0KGgo...
尹雨沫 2022-09-11 15:47:33

两种解决方式:
第一,在js中引入scss,webpack的require或者import会帮我们找到正确的图片路径
第二,使用resolve-url-loder,注意使用要在sass-loader之后

So要识趣 2022-09-11 15:47:33

老哥,解决了吗?

因为看清所以看轻 2022-09-11 15:47:33

把引入的scss变成一个混合样式

@mixin video-card($path){
    .video-card {
        background: url(#{$path}/wh_bg.png) center no-repeat;
    }
}

然后再引入时传入参数

.content {
    @include video-card("../../../images");
}

编译后变成

.content {
    .video-card {
        background: url(../../../images/wh_bg.png) center no-repeat;
    }
}
想念有你 2022-09-11 15:47:33

同样也碰到了这个问题,在寻求解决方案

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文