2016-08-24 10 views
0

Chromeで私のSPAで本当に奇妙な動作をしています。私はAngularJSフロントエンドを持つローカルIISサーバーを実行しています。私はGulpを使用して、すべてのJavascriptファイルとCSSファイルをバストキャッシュしています。最近、自分のサイトに古いHTMLファイルがロードされていたことが判明しました。これは角度$templateCacheに起因していますので、これを解決するためにgulp-angular-templatecacheを使用しましたが、新しい問題が発生しました。Chromeは、更新ボタンを押すまで古いページをキャッシュし続けます。

URLバーにlocalhostと入力して、IISサーバーを起動してChromeでアプリケーションを読み込むと、Chromeはキャッシュからすべてを読み込み、古いJS、CSS、HTMLファイルを取得します古いindex.htmlファイルをロードしていますが)localhost/mainPageのような他のルートに移動すると、すべての新しいファイルがロードされ、すべてが意図どおりに機能します。その後、再びlocalhostに行くと、古いサイトが再びキャッシュから読み込まれます!

私は専門家ではありませんが、非常に奇妙な動作のようです。これはChromeのバグですか?それは私の中のクロムの欠陥か何かですか?AngularJSSPA

私は index.htmlのキャッシュを無効にするには、この持っている私の Web.config

<!-- Disable index.html cache --> 
    <location path="index.html"> 
    <system.webServer> 
     <staticContent> 
     <clientCache cacheControlMode="DisableCache" /> 
     </staticContent> 
    </system.webServer> 
    </location> 

そして、この他のすべてのファイルのキャッシュ時間を最大化するために:

<system.webServer>  
    <staticContent> 
     <!-- Cache busting for 1 year (max recommended value) --> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" /> 
    </staticContent> 
</system.webServer> 

答えて

0

これらの2つのシナリオがあります:

  • 開発する場合は、disable cacheというオプションを使用する必要があります。 e Chromeが提供します。これを行うには、Devtoolsを開き(Chromeメニュー>その他のツール..> Devtools)、ネットワークタブに行き、キャッシュを無効にしてください。
  • 本番環境にリリースするときは、ファイルリビジョンツール。これにより、ファイルの名前(scripts.472bc7.jsなど)にハッシュが追加され、エンドユーザのブラウザでのキャッシュの問題を回避します。
+0

すでに各ファイルにハッシュが追加されています(キャッシュバスト)。古いhtmlファイルを取得し続ける – Andres

関連する問題