Wie man index.html nicht zwischengespeichert werden, wenn die Website-Inhalte sind Veränderungen in der AngularJS-website?
Normalerweise für .js
und .css
Datei werden wir zusätzlich eine version, die während der bauen wie
xx.js?v=123
, und dann, nach der website bereitstellen, können wir die neue version von js und CSS. Aber ich sehe nicht ein Ort darüber reden, wie man die index.html
- Datei aktualisieren, wenn eine website Bereitstellung passieren. Und wir sehen, wie im IE, dass der HTML-Inhalt sollte wurden geändert, aber es verwenden immer noch die alten HTML-Inhalte.
One-Lösung finde ich aus google ist
<meta http-equiv="Cache-control" content="no-cache">
Allerdings bin ich mir nicht sicher, ob das die beste Lösung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, das ist der richtige Weg. Sie haben, um die
Cache-Control
header zu lassen, die Browser wissen, dass Sie nicht haben, um cache-Inhalte für diese Anfrage.(
Pragma
&Cache-Control
ist ein und die gleiche Sache, aber aus den verschiedenen HTTP-Spezifikation. Finden Sie die Antwort hier: Unterschied zwischen Pragma und Cache-control-Header?)Finden Sie in der zugehörigen Antwort hier: Wie zu platzen yeoman index.html cache
index.html
also habe ich entsprechend beantwortet und wenn Sie hinzufügen möchtenno-cache
header für png-Dateien zu erhalten, muß man konfigurieren der server, zum Beispiel Apache oder Nginx. Ich weiß, dieser header kann auch direkt über die server-Konfiguration, aber ich antwortete, auf der Grundlage der Frage.Wie bereits erwähnt in den Kommentaren ist es wirklich die server Konfiguration, die Sie wollen, zu betrachten, aber Sie haben nicht erwähnt, Ihr setup. Wir führen unsere AngularJS-Website mit ein .NET-backend mithilfe von IIS.
Wir aktualisieren unsere Website regelmäßig und hatten in der Vergangenheit Probleme mit JS-und CSS-Ressourcen, caching, aber wir haben es gelöst durch die folgenden Einstellungen:
Bauen
Verwenden wir gulp bauen unsere AngularJS-Anwendung und als Teil der, dass wir zusätzlich eine Versionsnummer an den querystring unserer wichtigsten Anwendung von CSS-und Javascript-Dateien, die sich Häufig ändern. Zum Beispiel:
Server-Konfiguration
In der root web.config, die wir angeben, dass wir nicht wollen, um die index.html zum cache Einstellung der
cache-control
,Pragma
undExpires
request-Header sowie die max-age auf 0.Referenzen:
Durch Einstellung von Inhalten Wert auf 0, Browser laden immer die Seite von dem web-server.
Können Sie angeben, IIS aus den spezifischen Seiten erweiterte Einstellungen, die preloading ist nicht aktiviert. Ihre Website-performance wird allerdings leiden. Überprüfen Sie auch, dass der Anwendungspool für die bestimmte website, die integrierte pipeline-Modus .NET CLR-version.
Nein, dies ist sicherlich nicht der richtige Weg. Betrachten Sie eine website mit mehr als einer Seite (sprich: 99.999% der websites sind), tun Sie ernsthaft glauben, dass der Entwickler explizit festgelegt, no-cache, die auf jeder Seite? Dies hat nichts zu tun mit Winkel-und alles, was damit zu tun mit dem web-server (der keine Ahnung hat, was in den index.html Datei) nicht ordnungsgemäß Zwischenspeichern von Dateien, als wären Sie statische Inhalte.
Sicherlich in Betracht ziehen no-cache als vorübergehende Maßnahme, bis Sie das server-Konfiguration.