テンプレートキャッシングを避ける最も良い方法は、ファイルのリビジョン化です。
gulp
を使用しているため、gulp-rev
またはgulp-rev-all
を使用してファイルを改訂することができます。
リビジョンアップとは何ですか?
ファイル名にコンテンツハッシュを追加することによるスタティックアセットリビジョンunicorn.css
→unicorn-d41d8cd98f.css
。
つまり、すべてをビルドするとファイル名が変更され、テンプレートキャッシュが回避されます。 あなたが改正.html
、.css
、.js
、images
を含むすべてのファイル、gulp-rev-all
以来videos
など
がgulp-rev
から最新のとフォークであることができ、の約gulp-rev-all
だけ話をしましょう。
var revAll = require('gulp-rev-all');
あなたがリビジョンからいくつかのファイルを無視したい場合、あなたはこのようにそれを行うことができます:gulp-rev-all
を使用してリビジョン
。
var rev = new revAll({dontRenameFile: [/^\/favicon.ico$/g, /^\/index.html/g]})
すべてのファイルがフォルダdist
にあり、フォルダwww
に新しいrevisionedファイルを保存することを検討してください。(あなたはまた、dist
に保存することができます。www
あなたのビルドディレクトリで考える。)
return gulp.src('dist/**')
.pipe(rev.revision())
.pipe(gulp.dest('www'))
次に、manifest
ファイルを作成して、ファイルをリビジョン1にマップします。その使用のために.manifestFile()
機能。パイプを通過する既存のファイルをフィルタリングし、新しいマニフェストファイルを生成する変換関数を返します。 .revision()の後に呼び出さなければなりません。 revisionedパスに元のパスをマッピング
.pipe(rev.manifest())
.pipe(gulp.dest('www/manifest'));
アセットマニフェストは、www/manifest/rev-manifest.json
に書き込まれます。
{
"css/unicorn.css": "css/unicorn.098f6bcd.css",
"js/unicorn.js": "js/unicorn.273c2cin.js"
.....
.....
}
完全なコード:
gulp.task('rev',() => {
var revAll = require('gulp-rev-all'),
rev = new revAll({dontRenameFile: [/^\/favicon.ico$/g, /^\/index.html/g]});
return gulp.src('dist/**')
.pipe(rev.revision())
.pipe(gulp.dest('www'))
.pipe(rev.manifest())
.pipe(gulp.dest('www/manifest'));
});
gulp-rev-all
hereについてもっと知ります
お返事ありがとうございますが、私はテンプレートキャッシングのための角度テンプレートキャッシュを使用しています。私はdevマシンでgulpを使ってtemplateCacheを削除したいと思います。 –