sass文件import文件引起的background地址编译错误

发布于 2022-09-01 16:16:53 字数 755 浏览 10 评论 0

先给出文件结构:

css
-app
--b.scss
js
-utils
--images
--a.scss

比如,你有一个组件a.scss,该文件中有背景图的样式:

css/*a.scss*/
.box { background:url('images/test.png') no-repeat;}

b.scss需要导入a.scss样式:

css/*b.scss*/
@import "../../js/utils/a";

导入后,编译b.scss,会得到

css.box { background:url('images/test.png') no-repeat;}

这个结果肯定是不对的,你不可能在css目录中找到images目录,因为不存在的。
请问,你们如何解决这个问题?使用compass么?

相关链接:https://github.com/sass/sass/issues/1015

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

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

发布评论

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

评论(3

椒妓 2022-09-08 16:16:53

从根目录找起不失为一个方法吧~
/images/xx.png这样
以前也碰到这个问题,我们还尝试过用设变量的方法

css/*a.scss*/
.box { background:url('#{$dir}images/test.png') no-repeat;}

然后import之前设置一下对于当前scss文件来说正确的路径

css/*b.scss*/
$dir: '../utils/';
@import "../../js/utils/a";
童话 2022-09-08 16:16:53

如果在经过webpack打包,路径还是不对,

最后我的解决办法是将背景图片的样式写在了行内 这样就不用去考虑那些路径问题了

客…行舟 2022-09-08 16:16:53

比较笨的方法,你可以设置a的background url 从根目录找起~这样大家就没冲突了,

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