我想知道如何让 gulp-rev-replace 用子文件夹中的 HTML 文件中的相同哈希替换文件引用。考虑以下文件结构
- 索引.html
- 子文件夹
- 索引.html
- 脚本
- main.js
- 风格
- 主文件
以及以下 html 语句:
索引.html:
<!-- build:css styles/main.css -->
<link rel="stylesheet" href="/bower_components/normalize-css/normalize.css">
<link rel="stylesheet" href="styles/main.css">
<!-- endbuild -->
子文件夹/index.html:
<!-- build:css ../styles/main.css -->
<link rel="stylesheet" href="/bower_components/normalize-css/normalize.css">
<link rel="stylesheet" href="../styles/main.css">
<!-- endbuild -->
以及我的 Gulpfile 中的以下内容
gulp.task('html', ['styles'], () => {
const assets = $.useref.assets({searchPath: ['.tmp', 'app', '.']});
return gulp.src('app/**/*.html')
.pipe(assets)
.pipe($.if('*.js', $.uglify()))
.pipe($.if('*.css', $.minifyCss({compatibility: '*'})))
.pipe($.rev())
.pipe(assets.restore())
.pipe($.useref())
.pipe($.revReplace())
.pipe($.if('*.html', $.minifyHtml({conditionals: true, loose: true})))
.pipe(gulp.dest('dist'));
});
样式链接块index.html
将被正确的缩小和散列样式表引用替换。相反,相同的块subfolder/index.html
将获得完全不同的散列样式表引用。但是,它确实使样式表的路径正确。
我是否错误地设置了我的 Gulpfile?