Ich versuche etwas zu tun, was ich für ziemlich einfach hielt. Lassen Sie IIS 7 den Clients mitteilen, dass sie alle Bilder auf meiner Website für einen bestimmten Zeitraum zwischenspeichern können, beispielsweise 24 Stunden.
Ich habe den Schritt auf http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx versucht, aber ohne Erfolg. Ich erhalte immer noch Anfragen an den Server, wobei 304s zurückgegeben werden.
Hat jemand eine Möglichkeit, dies zu tun? Ich habe eine grafisch intensive Site und meine Benutzer werden jedes Mal, wenn sie eine Seite anfordern, gehämmert (ebenso wie mein Server). Seltsamerweise scheinen die Bilder "Cache-Control privat, maximales Alter = 3600" in Firebug zu haben, aber der Browser fordert sie immer noch an, wenn ich F5 drücke.
Cache-Control
(max-age
) Header für verschiedene MIME-Typen oder Dateierweiterungen bereitstellen können?Das stimmt nicht Jeff.
Sie müssen lediglich einen Ordner in Ihrer IIS 7 Manager-Benutzeroberfläche auswählen (z. B. Bilder oder Ereignis im Standard-Webanwendungsordner) und dann auf "HTTP-Antwortheader" klicken. Dann müssen Sie im rechten Bereich auf "Gemeinsame Kopfzeile festlegen ..." klicken und "Webinhalt ablaufen" auswählen. Dort können Sie ganz einfach ein Höchstalter von 24 Stunden konfigurieren, indem Sie "Nach:" wählen, "24" in das Textfeld eingeben und "Stunden" in der Combobox auswählen.
Ihr erster Absatz zum Eintrag web.config ist richtig. Ich würde das cacheControlCustom-Attribut hinzufügen, um den Cache-Steuerelement-Header auf "public" zu setzen oder was auch immer in diesem Fall benötigt wird.
Sie können dies natürlich auch erreichen, indem Sie nach Bedarf web.config-Einträge (oder -Dateien) bereitstellen.
Edit: einen verwirrenden Satz entfernt :)
quelle
Cache-Control
(max-age
) Header für verschiedene MIME-Typen oder Dateierweiterungen bereitstellen können?ich benutze das
statischen Inhalt für 500 Tage mit einem öffentlichen Cache-Control-Header zwischenzuspeichern.
quelle
Die F5-Aktualisierung hat die Semantik "Bitte laden Sie den aktuellen HTML- Code UND seine direkten Abhängigkeiten neu". Daher sollten Sie erwarten, dass alle imgs-, css- und js-Ressourcen, auf die der HTML-Code direkt verweist, ebenfalls neu abgerufen werden. Natürlich ist ein 304 eine akzeptable Antwort darauf, aber eine F5-Aktualisierung impliziert, dass der Browser die Anforderung stellt, anstatt sich auf neuen Cache-Inhalt zu verlassen.
Versuchen Sie stattdessen einfach, woanders zu navigieren und dann zurück zu navigieren.
Sie können die Aktualisierung nach 304 erzwingen, indem Sie die Strg-Taste gedrückt halten und in den meisten Browsern die Taste f5 drücken.
quelle
Um statischen Inhalt 365 Tage lang mit einem öffentlichen Cache-Steuerungsheader zwischenzuspeichern , kann IIS wie folgt konfiguriert werden
Dies führt zu einem Header wie dem folgenden:
Beachten Sie, dass das maximale Alter ein Delta in Sekunden ist, das durch eine positive 32-Bit-Ganzzahl ausgedrückt wird, wie in den RFC 2616-Abschnitten 14.9.3 und 14.9.4 angegeben . Dies entspricht einem Maximalwert von 2 ^ 31 oder 2.147.483.648 Sekunden (über 68 Jahre). Um die Kompatibilität zwischen Clients und Servern besser zu gewährleisten, empfehlen wir jedoch ein Maximum von 365 Tagen (ein Jahr).
Wie in anderen Antworten erwähnt, können Sie diese Anweisungen auch in der web.config Ihrer Website für alle statischen Inhalte verwenden. Alternativ können Sie es auch nur für Inhalte an einem bestimmten Speicherort verwenden (im Beispiel 30 Tage öffentlicher Cache für Inhalte im Ordner "cdn"):
quelle
Es gibt einen einfachen Weg: 1. Verwenden Sie die web.config der Website. 2. Entfernen Sie im Abschnitt "staticContent" eine bestimmte Dateierweiterung und fügen Sie mimeMap hinzu. 3. Fügen Sie "clientCache" hinzu.
quelle