javascript - gulp-sass:如何禁用添加背景图像的前缀路径

标签 javascript css sass gulp gulp-sass

大家好!

我正在开发一个网络应用程序,并使用 gulp-sass 将我的文件编译成 css。

元素结构示意图:

build/
  -image.png
  -build.css
src/
  -app/
     -component_1/
        -component.scss   

component.scss 内部:

div.component {
  background: url("/image.png") no-repeat center center;
}

这是我的gulp脚本,负责将sass编译成css:

 gulp.task('sass', function () {
  return gulp.src("src/app/**/*.scss")
    .pipe(sass().on("error", sass.logError))
    .pipe(gulp.dest("./sass.compiled/"))
    .pipe(concatCss("build.css"))
    .pipe(gulp.dest("build"));
});

作为结果:gulp-scss 在背景的 url 属性前加上路径:'component_1'。所以不是预期的:

background: url("/image.png") no-repeat center center;

我得到:

background: url("component_1/image.png") no-repeat center center;

有没有办法,我可以制作 gulp-sass 来防止这种行为?

最佳答案

不是 gulp-sass 造成的,而是 gulp-concat-css。作为package description状态:

Concatenates css files, bubbling up @import statements (as per the standard), and optionally rebasing urls and inlining local @import statements.

您需要禁用可选的 url rebase 。您可以使用 rebaseUrls option :

gulp.task('sass', function () {
  return gulp.src("src/app/**/*.scss")
    .pipe(sass().on("error", sass.logError))
    .pipe(gulp.dest("./sass.compiled/"))
    .pipe(concatCss("build.css", { rebaseUrls: false }))
    .pipe(gulp.dest("build"));
});

关于javascript - gulp-sass:如何禁用添加背景图像的前缀路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39108083/

相关文章:

javascript - 如何在 ActionScript 中使用ExternalInterface 获取此函数以将数组返回给 JavaScript

JavaScript - 迭代一系列问题(数组/对象)

javascript - 如何检查单击时是否选中了复选框?

css - HTML 电子邮件中的垂直边距大屠杀

css - 在最小宽度断点中嵌套方向断点

css - sass 会影响性能吗?

javascript - 有什么方法可以将状态变量导出/传递到 ReactJS 中的外部 CSS 文件

javascript - 如何改变 Canvas 本身的形状?

html - 我可以仅使用 html/css 将自定义滚动条绑定(bind)到某些操作吗?

javascript - 如何在滚动时将 jQuery 阴影函数应用于具有相同类名的多个元素