我正在开发一个项目,我将所有文件连接起来,通过gulp缩小和重命名。
当我在主css文件中将图像路径写为背景图像时,它在缩小的文件中不起作用。实际上我无法设置图像路径,因为它是在另一个目录中的缩小文件中编译的。
我的文件路线流
assets -->
--css
--main.css
--img
dist -->
--css
--all-styles-min.css
gulpfile.js
我已将一个图像文件放在assets / img文件夹中,并在main.css中调用该文件
我的gulp.js
return gulp.src([
'assets/css/animate.min.css',
'assets/css/bootstrap.css',
'assets/css/vendor/bootstrap-select.min.css',
'assets/css/vendor/bootstrap-datepicker3.min.css',
'assets/css/vendor/jquery.timepicker.css',
'assets/css/default.css',
'assets/css/main.css',
'assets/css/responsive.css',
])
.pipe(concat('all_styles.css'))
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(rename('all_styles.min.css'))
.pipe(gulp.dest('dist/css'))
});
并在我的main.css
.black-bg{
background:url('../img/black-multiply-bg.png') 0 0 repeat;
}
我看到找不到图像文件的控制台错误
http://localhost/projects/P-09-sakha/html/dist/css/assets/img/black-multiply-bg.png 404 (Not Found)
源显示dist文件夹。我还使用gulp-css-url-adjuster进行了检查,但仍无法使其正常工作。
答案 0 :(得分:0)
我只有一些Grunt的经验,不幸的是没有Gulp。 但是既然我过去遇到了类似的事情,我会告诉你我做了什么。
我使用replace
功能应用正则表达式替换正确的“错误”网址。
就我而言:replace: [{files: 'index.html', regex: /\.\.\/dist\/css/g, replacement: 'css'}]
,替换../dist/css
文件中css
的所有index.html
。例如,<link href="../dist/css/style.css" />
将变为<link href="css/style.css" />
。
我确信Gulp有类似的东西。
答案 1 :(得分:0)
我在为另一个项目工作时解决了css-url-adjuster的问题。
我之前发现编码的格式对我来说不正确。所以我希望有人可能会从中找到帮助。
为此,我使用了4个Gulp插件。 gulp-clean-css gulp-cssmin gulp-rename 4. gulp-css-url-adjuster
,代码是:
gulp.task('css', function(){
return gulp.src([
'../html/assets/css/main.css',
])
/**
*
* Note
* To Use minify and fixing the image path, you have
* to use both gulp-clean-css & gulp-cssmin & gulp-css-url-adjuster
* and the format must follow the below code
* else you will get error
*/
.pipe(concat('apps.css'))
.pipe(gulp.dest('../html/assets/css'))
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(urlAdjuster({
prepend: '../img/',
}))
.pipe(cssmin())
.pipe(rename({suffix:'.min'}))
.pipe(gulp.dest('../html/assets/css'))
});