2016-03-23 5 views
1

私はangle jsアプリケーションで作業しています。これは単一ページアプリケーションで、ビューを切り替えるためにルーティングを使用しています。インデックスページが最初にヒットしたときにすべてのファイル(スタイルシートとjavascript)が一度だけ読み込まれ、スタイルシートまたはjavascriptファイルのいずれかで更新され、更新されたものではなく古いバージョンのファイルが更新されると仮定します。角度jsアプリケーションのキャッシングを防止する

サーバーファイルに更新情報があるときは常に、最新のファイルを取得して、ページ(index.html)自体を更新せずにキャッシュから取り出さなければなりません。

ご協力いただければ幸いです。その場合

Cache-Control: max-age=0, must-revalidate 
ETag: 'some generated value based on the content' 

ブラウザは常にのETag値をチェックする要求を送信し、場合します:

+0

Googleのキャッシュ破損については、こちらも参照してくださいhttp://stackoverflow.com/questions/9692665/cache-busting-via-params –

答えて

0

あなたの目標は、キャッシング、適切なリソースの再検証を達成することであるならば、私は次のヘッダーを使用するためにあなたを示唆しているであろうのETagは、サーバが新しいコンテンツを送信します、その後変更されている、そうでない場合は、その後ステータスコードで応答します:304あなたは既に生産をあなたのサイトを展開している場合

を修正、およびNEありません今度はユーザーのブラウザの既存のキャッシュを無効にしてから、Timが提案した内容を読んでください。link

0

異なるURLの状態を定義したページでcache: falseパラメータを使用すると、角度jのファイルのキャッシュを防ぐことができます。ページがロードされます一度

$stateProvider.state('login', { 
     url: '/yourState', 
     cache: false, 
     templateUrl: 'yourTemplate.html', 
     controller: 'yourController as yourCtrlObj' 
    }); 

状態パラメータにfalsecacheを設定するには、該当するページ内のすべてのファイルが再ロードされます。ここでは、角度js内でcontrollerAs構文を使用した例を示しています

関連する問題