首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动更新相对CSS路径以进行缩小?

如何自动更新相对CSS路径以进行缩小?
EN

Stack Overflow用户
提问于 2016-09-22 13:58:15
回答 1查看 421关注 0票数 2

我想更新所有相对路径以进行缩小,因为我对每个JS/CSS组件使用不同的文件夹,并且每个组件的文件夹深度也可能不同,例如:

代码语言:javascript
复制
css/
    style.min.css // final minified and processed file
    common.scss
    components/
        gallery/
            gallery.scss // url(../../../img/mypic.png)
img/
    mypic.png

缩小后,我在style.min.css中的风格仍将是../../../img/mypic.png。但是,必须将其更新为../img/mypic.png,否则浏览器将找不到图片。

如何使用PostCSS或其他包自动完成此操作?

我找到了postcss-url项目,它提供了一个用于自定义URL转换的函数,但我没有找到如何这样做的任何示例。

现在,我使用gulpnodejsautoprefixerpostcss进行缩小。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 17:12:04

url中有一个名为postcss-url的参数,可用于将自定义函数传递给postcss-url。这个函数可以修改postcss-url的URL,但是代码必须是手动编写的。下面是我在我的项目中使用的内容:

代码语言:javascript
复制
var outDir = './src/css'; // output folder for CSS
gulp.task('min:css', function () {
    return gulp
        .src(cssInput)
        .pipe(postcss([
            autoprefixer(),
            postcssurl({
                // this function will modify URLs
                url: function (asset) {
                    if (!asset.url || asset.url.indexOf("base64") !== -1) {
                        return asset.url;
                    }
                    return path.relative(outDir, asset.absolutePath).split("\\").join("/");
                }
            })
        ]))
        ...
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39641143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档