8

私はそれを利用しています、templateUrlそしてそれはうまくいきます!

app.directive('myDir', function() {
    return {
        templateUrl: 'partials/directives/template.html'
    };
};

ただし...これらのテンプレートに変更を加えても、更新されません。開発中は大きな問題ではありません。何が更新されているかを知っており、キャッシュを手動でクリアすることができます。

しかし、すべてのユーザーのキャッシュをクリアすることはできません。これを行う方法はありますか?CACHE-CONTROL メタタグなどを使用しますか?

4

2 に答える 2

2

私が見る限り、あなたには2つの選択肢があります -

  1. service を使用$cacheFactoryして古いキャッシュを削除します テンプレートがフェッチされた後、Angular はそれをデフォルトの $templateCache サービスにキャッシュします

    // Please note that $cacheFactory creates a default key '$http'
    
    var cache = $cacheFactory.get('$http');
    
    // The remove() function removes a key-value pair from the cache, 
    // if it’s found. If it’s not found, then it just returns undefined.
    
    cache.remove(your url);
    
  2. ファイルのバージョン管理を使用して、変更ごとにファイルの名前を変更します。つまり、ファイルの最初のバージョンが template-1.0.1.html の場合、コードを変更すると、名前を template-1.0.2.html に変更します。このようにして、変更を加えるたびに新しいファイルがダウンロードされます。

于 2014-10-06T11:28:07.817 に答える
2

簡単で汚い解決策は、キャッシュを無効にすることです$httpProvider

app.config(function ($httpProvider) {
    $httpProvider.defaults.headers.get = {
        'Cache-Control': 'no-cache'
    };
});

これはお勧めしません。しかし、それは機能します。

于 2016-12-05T12:57:39.613 に答える