2015-07-21 15 views
7

Sto lavorando su un sistema che ha un sacco di file modello html utilizzati in tutto il sistema.

Il problema si verifica quando distribuisco gli aggiornamenti, gli utenti non sono in grado di visualizzare le modifiche HTML perché i loro browser utilizzano la versione memorizzata nella cache. Finora, l'unico modo in cui sono in grado di far vedere agli utenti gli aggiornamenti html è di farli eseguire un duro ricaricamento del loro browser.

Per ovvi motivi questo non è l'ideale. Mentre gli utenti migrano a questo sistema, è diventato un compito noioso assicurarci che tutti eseguano quell'azione

Esiste un modo per forzare i browser che accedono al sistema per cancellare la cache dei modelli al mio comando? Magari cancellarlo manualmente all'accesso al sistema?

+1

$ templateCache non è responsabile per il caching tra caricamento della pagina. Risolvilo dal lato server o esegui richieste con timestamp/versione, ad es. 'Template.html? V = 123'. – estus

risposta

6

$templateCache.removeAll() è buono per rimuovere cache del modello

codice di esempio

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

puoi utilizzare qualsiasi altro evento invece di 'viewContentLoaded', che è solo per esempio :) –

+1

La domanda si indirizza alla cache del browser, $ templateCache non ha nulla a che fare con il problema, nonostante quello che dice il titolo. – estus

+0

@estus, ha detto, ha usato 'molti file template html'? hai letto completamente le domande? –

1

È possibile utilizzare angolare-cache-buster plugin. Ho anche avuto il problema di caricare i modelli memorizzati nella cache e il problema è stato risolto utilizzando questo ottimo plugin.

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

Problemi correlati