2016-05-18 6 views
1

私はHTMLファイルをキャッシュしないようにしようとしています。 私はrev & rev-replaceで作業しようとしました。 ファイル名のみが変更されますが、stateprovider内のファイルの参照は変更されないため、ファイルが見つかりませんというエラーが発生しています。html angljsでキャッシングを避けるstateprovider&gulp

$ stateProvider .state( 'ランディングページ'、{ URL: "/ホーム"、 templateUrl:「ビュー/ランディングページ/ランディングページ

これはstateProviderを持っている私のconfig.jsのの一部です。 HTML」、 })

これは私の一気ファイルの一部です:

gulp.task('copyHtml', ['copyAll','useRef'], function() { 
return gulp.src('app/views/**/*.html') 
.pipe(htmlmin({ collapseWhitespace: true, removeComments: true })) 
.pipe(rev()) 
.pipe(revReplace()) 
.pipe(gulp.dest('dist/views')); 
}); 

私はconfig.jsの内のファイルの参照を変更するにはどうすればよいですか?

コンテンツはモバイルでのみリフレッシュされません(アンドロイド上のクロム)。 私はhtmlファイルの名前を手動で変更しようとしましたが、stateProviderでは動作しませんでした。

ブラウザのキャッシュを避けるにはどうすればよいですか?

ありがとう

答えて

0

ブラウザは、テンプレートのURIを変更するまでキャッシュします。

解決策は、プロジェクトの各ビルド(gulp)で変更された値を保存することです。例えば

あなたが使用したテンプレートのURLが定義されたコントローラで今
var build_id = $val_to_generate$; 

コントローラ、使用に関連するテンプレートで今
$scope.urls = { 
    template1: "http://adazdazkdaz/template1.html?v=" + build_id 
} 

を:

<div ng-include="urls.template1"></div> 

ページはもうキャッシュされません。

jsファイルに対してもこれを行うことができます

+0

しかし、どのように私はgulpでそれを行いますか? ビルドIDを設定ファイルに追加するにはどうすればよいですか? 私はjs&cssでは成功しましたが、htmlでは成功しませんでした。 – stackoverflowNewB

+0

私自身では、gulpを使ってすべてのビルドルールを実行するわけではありません。/私はそのファイルを生成することだけを目的としたPHPのスクリプトを用意しています。 "build_id"という名前のファイルを生成します。各呼び出し時に、ファイルを開き、値を取得して値に1を加え、ファイルを保存します。その後、例えば 'globals.tmp.js'という名前のファイルを生成します。これは、連結ルールのgulpファイルで使用できます。 –

+0

この問題の解決策はありますか? – stackoverflowNewB

関連する問題