0

gulp-rev-replace を取得して、サブフォルダー内の HTML ファイル間でファイル参照を同じハッシュに置き換える方法を知りたいです。次のファイル構造を考慮する

  • index.html
  • サブフォルダー
    • index.html
  • スクリプト
    • main.js
  • スタイル
    • main.scss

そして、次の html ステートメント:

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 -->

サブフォルダー/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 の設定が間違っていますか?

4

1 に答える 1

0

この別の回答の助けを借りてそれを理解しました。最終的に、各 HTML ファイルのスタイル参照を app ディレクトリのルートに設定し、検索する 3 つのディレクトリを指定しました。

<!-- build:css({.tmp,app,.}) /styles/main.css -->
<link rel="stylesheet" href="/bower_components/normalize-css/normalize.css">
<link rel="stylesheet" href="/styles/main.css">
<!-- endbuild -->

gulp-userref に提供される 3 つのディレクトリに一致するもの

const assets = $.useref.assets({searchPath: ['.tmp', 'app', '.']});
于 2015-10-14T01:24:51.520 に答える