2016-04-04 8 views
0

Vor ein paar Monaten habe ich nach Informationen gesucht, wie man Dateien (Stylesheets, Bilder) auf unserer Seite am besten cachen kann. Was ich fand, war ein paar Zeilen Code in der .htaccess-Datei hinzuzufügen:Dateicache mit .htaccess

# Expires caching (Caching static files for longer drastically improves performance, you might even want to put even more aggressive times) 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresByType image/jpg "access plus 1 year" 
ExpiresByType image/jpeg "access plus 1 year" 
ExpiresByType image/gif "access plus 1 year" 
ExpiresByType image/png "access plus 1 year" 
ExpiresByType text/css "access plus 1 month" 
ExpiresByType text/html "access plus 1 month" 
ExpiresByType text/x-javascript "access plus 1 month" 
ExpiresByType image/x-icon "access plus 1 year" 
ExpiresDefault "access plus 1 month" 
</IfModule> 

Das Problem ist jedoch, dass, wenn wir unser Stylesheet aktualisieren oder einige Bilder auf der Seite zu ersetzen, die einzige Möglichkeit für den Benutzer zu sehen Sie sollen die Seite aktualisieren. Wir haben einige Banner, die wir nicht länger anzeigen möchten, und sie erscheinen weiterhin auf der Website, bis eine manuelle Aktualisierung durchgeführt wird.

Gibt es eine bessere Möglichkeit, den Cache zu steuern?

Danke.

+1

'Gibt es eine bessere Möglichkeit, den Cache zu steuern?' Ja. Wenn sich der Inhalt ändert, ändern Sie die URL. – AD7six

Antwort

0

Sie können eine Abfragezeichenfolge an die Ressource src anhängen, wenn Sie sie aktualisieren. So könnte Ihr Stylesheet Referenz wie folgt aussehen:

<link rel="stylesheet" type="text/css" href="theme.css"> 
<img src="smiley.gif" alt="Smiley face"> 

Dann nächste Mal, wenn Sie es aktualisieren, können Sie den Cache brechen durch die Query-String-Wechsel:

<link rel="stylesheet" type="text/css" href="theme.css?version1.2"> 
<img src="smiley.gif?version1.2" alt="Smiley face"> 

Auf diese Weise können Sie mit weiterarbeiten derselbe Dateiname theme.css

+0

Danke für die Antwort. Dies könnte bei den Stylesheets hilfreich sein, aber eines unserer größten Probleme ist, wie wir die Bilder (insbesondere Bannerwerbung) aktualisieren können, ohne dass der Benutzer die Seite manuell aktualisieren muss, um die Änderungen zu sehen. – cesarcarlos

+0

es funktioniert das gleiche mit Bildquellen, ich aktualisierte meine Antwort, um das Beispiel zu reflektieren –