2015-07-21 3 views
7

Ich bin auf einem System arbeiten, das eine Menge HTML-Template-Dateien hat wird alle im gesamten System verwendet.

Das Problem ist, wenn ich Updates bereitstellen, werden die Benutzer nicht in der Lage html Änderungen zu sehen, weil ihre Browser die im Cache gespeicherte Version von ihnen verwenden. Bis jetzt ist die einzige Möglichkeit, die Benutzer dazu zu bringen, HTML-Updates zu sehen, darin zu bestehen, dass sie ihren Browser neu laden.

Aus offensichtlichen Gründen ist dies nicht ideal. Wie mre Benutzer zu diesem System migrieren, ist es zu einem mühsamen Job geworden sicherzustellen, dass jeder diese Aktion ausführt

Gibt es eine Möglichkeit, ich Browsern den Zugriff auf das System zu zwingen, Vorlage Cache auf meinem Befehl zu löschen? Vielleicht löschen Sie es manuell beim Einloggen in das System?

+1

$ templateCache ist nicht verantwortlich für das Caching zwischen Seite geladen wird. Löse es von der Serverseite oder mache zeitgestempelte/versionierte Anfragen, z. 'template.html? v = 123'. – estus

Antwort

6

$templateCache.removeAll() ist gute Vorlage Cache

Beispielcode

myApp.run(function($rootScope, $templateCache) { 
    $rootScope.$on('$viewContentLoaded', function() { 
     $templateCache.removeAll(); 
    }); 
}); 
+0

Sie ein anderes Ereignis statt 'viewContentLoaded' verwenden kann, das nur zum Beispiel :) –

+1

Die Frage Adressen Browser-Cache, hat $ templateCache nichts mit dem Problem zu tun, trotz allem, was der Titel sagt. – estus

+0

@estus, Er sagte, er benutzte 'viele HTML-Template-Dateien'? Hast du die Fragen vollständig gelesen? –

1

Sie Winkel-Cache-buster-Plugin verwenden können, zu entfernen. Ich hatte auch das Problem, die zwischengespeicherten Vorlagen zu laden, und das Problem wurde gelöst, indem ich dieses große plugin verwendete.

https://github.com/saintmac/angular-cache-buster