it-swarm.com.de

Erzwingen, dass Besucher die neuesten Versionen von Ressourcen erhalten (Umgehen des Browser-Cache)

Wie kann ich meine Besucher auf meiner Website zwingen, ihren Cache zu leeren und den neuen aktualisierten Inhalt abzurufen? Manchmal verbinde ich den Fortschritt einiger meiner Projekte mit dem Fortschritt anderer Projekte und sende ihn zur Rückmeldung an diese. Sie müssen jedoch zuerst ihren Cache leeren, um die tatsächlichen Änderungen zu sehen.

Ich habe mich gefragt, ob ich von meiner Position aus etwas tun kann, um den neuen Inhalt sofort zu laden, anstatt ihn aus dem Cache zu laden.

1
Panic

Klingt so, als ob Ihre Site HTTP-Caching verwendet. Diese Einstellung kann mithilfe von Browser-Caching nutzen oder mithilfe von Versionszeichenfolgen für Ihre Dateien vorgenommen werden.

Im Folgenden finden Sie 3 Methoden: Apache mod_expires , Apache FilesMatch und Versionsverwaltung mit PHP.

Apache mod_expires.c

<IfModule mod_expires.c> 
  ExpiresActive On
  ExpiresDefault "access plus 60 seconds"
  ExpiresByType text/html "access plus 60 seconds"
  ExpiresByType image/x-icon "access plus 60 seconds"
  ExpiresByType image/gif "access plus 60 seconds"
  ExpiresByType image/jpeg "access plus 60 seconds"
  ExpiresByType image/png "access plus 60 seconds"
  ExpiresByType text/css "access plus 60 seconds"
  ExpiresByType text/javascript "access plus 60 seconds"
  ExpiresByType application/x-javascript "access plus 60 seconds"
</IfModule>

Apache FilesMatch

<FilesMatch "\.(?i:gif|jpe?g|png|ico|css|js|swf)$">    
  <IfModule mod_headers.c>
    Header set Cache-Control "max-age=60, public, must-revalidate"
  </IfModule>    
</FilesMatch>

Versionierung

Durch Hinzufügen einer Abfragezeichenfolge am Ende der Datei wird der Browser glauben, dass die Datei nicht identisch ist, und sie wird erneut heruntergeladen.

Jedes Mal, wenn Sie eine Ressource bearbeiten, müssen Sie die Abfragezeichenfolge aktualisieren. Beispiel:

  1. Originalfassung: <link rel="stylesheet" href="pro-webmasters.css">
  2. Vorherige Version: <link rel="stylesheet" href="pro-webmasters.css?v=0.1">
  3. Neueste Version: <link rel="stylesheet" href="pro-webmasters.css?v=0.2">

Wenn Sie über mehrere CSS-Dateien, JavaScript-Dateien und andere Ressourcen verfügen, ist dies natürlich zeitaufwändig. Dies kann durch die Verwendung von PHP -Variablen vereinfacht werden. Beispiel:

<?php $VerNumber= "0.0.2"; ?>

<link rel="stylesheet" href="style.css?v=<?php echo $VerNumber; ?>">
<script src="jquery.js?v=<?php echo $VerNumber; ?>"></script>
<img src="image.jpg?v=<?php echo $VerNumber; ?>">
3
Simon Hayter