2013-04-05 14 views
5

Ich aktualisiere meine Website häufig nach Abschluss der Updates meine Kunden berichten, dass alte Bilder & Skripte geladen werden, anstatt neue geladen werden. Ich weiß, dass sie aus ihrem Browser-Cache kommen, aber gibt es eine Möglichkeit, dass ich Skripte zwingen kann, nicht vom Cache im Server zu laden.nginx verhindert das Laden aus dem Cache

Ich verwende nginx mit php-fpm.

+1

Sie können versuchen, Header wie diese zu verwenden: 'header ('Verfällt: Do, 01-Jan-70 00:00:01 GMT'); Kopfzeile ('Zuletzt geändert:'. Gmdate ('D, d M Y H: i: s'). 'GMT'); header ('Cache-Kontrolle: no-store, no-cache, must-revalidate'); Header ('Cache-Control: Nachprüfung = 0, Vorprüfung = 0', false); Header ('Pragma: no-Cache'); ' – vikingmaster

Antwort

11

Sie können erzwingen, dass HTTP-Header das Browser-Caching-Verhalten beeinflussen. Dies ist jedoch in einer Produktionsumgebung, in der Sie Caching durchführen möchten, wahrscheinlich keine gute Idee.

So einfach so etwas wie verwenden:

expires -1 

Cache-Control no-cache Header hier

prüfen, um weitere Informationen zu erzwingen:

http://wiki.nginx.org/HttpHeadersModule

Dass ich mich in die bekommen haben gesagt Gewohnheit, nur Bild- und statische Dateinamen zu ändern, während ich sie überarbeite. Vielleicht kommt das von der Arbeit mit CDNs, wo dies unglaublich hilfreich sein kann. Sagen wir, ich habe statische Dateien, die ich oft aktualisieren kann (d. H. Sie sind nicht Teil eines bestimmten Inhalts). Ich würde sie wie benennen:

someimagev1.jpg 
someimagev2.jpg 
somejs1.js 
somejs2.js 
etc. 

Ich ändere Werte (und Links in HTML-Quelle) nach Bedarf.

Verwandte Themen