2016-06-07 8 views
0

Wir haben ein Web-Portal, das mit BackboneJS erstellt wurde und derzeit dasselbe auf unserer eigenen Amazon-Instanz bereitstellt. Wir verwenden Java Apache Tomcat für den Server-Teil davon.BackboneJS - Gespeicherte Dateien, die Benutzer daran hindern, Änderungen zu erhalten, es sei denn, sie löschen ihren Browser-Cache zwangsweise

Das Problem ist, dass, wenn wir Code-Änderungen in den Ansichten und/oder Controller oder einer der anderen unterstützenden Dateien vornehmen. Die neu implementierten Änderungen, obwohl sie auf dem Server bereitgestellt werden, spiegeln sich nicht in den Browsern der Benutzer wider, es sei denn, sie löschen ihren Browser-Cache zwangsweise über die Netzwerkregisterkarte in "Developer Tools".

Gibt es eine Möglichkeit, eine neue Kopie der BackboneJS-Dateien bei jeder Anmeldung des Benutzers zu laden, sodass ihm alle neu entwickelten Codeänderungen zum ersten Mal zur Verfügung stehen? Wenn man sie bittet, ihre Caches nach jedem Einsatz zu löschen, ist eine Art Nein zu den "höheren": rolleyes:

Verzweifelt auf der Suche nach einer gültigen und praktikablen Lösung

Antwort

0

irgendwo auf Ihrer Seite Angenommen, haben Sie so etwas wie:

<body> 
... 
<script type="text/javascript" src="/js/bundle.js"></script> 
</body> 

würde ich vorschlagen, eine neue Version oder Datumsstempel Parameter zu Ihrem Javascript-Bundle hinzugefügt oder JavaScript-Dateien, wenn es Änderungen am Code. Durch das Hinzufügen einer eindeutigen Version oder eines Datumsstempels wird der Browser gezwungen, das JavaScript neu zu laden und nicht aus dem Cache.

<script type="text/javascript" src="/js/bundle.js?v=2"></script> 

Oder

<script type="text/javascript" src="/js/bundle.js?v=20160607"></script> 
+0

ich diese Lösung bereits gefunden, und es kann für die Ressourcendateien arbeiten, die auf diese Weise geladen werden, aber die Backbone-Dateien werden über das requirejs Modul geladen ... Also, wie kann ich tun, das oben mit diesen dateien? –