Frage

„Gültig bis“ in HTTP-Header für statische Inhalte

Was ist der beste Weg hinzufügen? z.B. Bilder, CSS, js

Der Web-Server ist IIS 6.0; die Sprache ist die klassische ASP

War es hilfreich?

Lösung

Sie könnte so etwas wie diese versuchen:

@ECHO OFF 
REM ---------------------------------------------------------------------------
REM Caching - sets the caching on static files in a web site
REM syntax 
REM     Caching.CMD 1 d:\sites\MySite\WWWRoot\*.CSS
REM 
REM   %1 is the WebSite ID
REM   %2 is the path & Wildcard - for example, d:\sites\MySite\WWWRoot\*.CSS
REM   _adsutil is the path to ADSUtil.VBS
REM ---------------------------------------------------------------------------

SETLOCAL

SET _adsutil=D:\Apps\Scripts\adsutil.vbs

FOR %%i IN (%2) DO (
  ECHO Setting Caching on %%~ni%%~xi
  CSCRIPT %_adsutil% CREATE W3SVC/%1/root/%%~ni%%~xi "IIsWebFile"
  CSCRIPT %_adsutil% SET    W3SVC/%1/root/%%~ni%%~xi/HttpExpires "D, 0x69780"
  ECHO.
)

, die den Cache-Wert für jede CSS-Datei in einem Web-Root bis 5 Tagen setzt, dann führen Sie es wie folgt aus:

Caching.CMD 1 \site\wwwroot\*.css
Caching.CMD 1 \site\wwwroot\*.js
Caching.CMD 1 \site\wwwroot\*.html
Caching.CMD 1 \site\wwwroot\*.htm
Caching.CMD 1 \site\wwwroot\*.gif
Caching.CMD 1 \site\wwwroot\*.jpg

Eine Art von schmerzhaften, aber praktikabel ist.

BTW - den Wert für HttpExpires zu bekommen, um den Wert in der GUI gesetzt, dann führen

AdsUtil.vbs ENUM W3SVC/1/root/File.txt

, um den tatsächlichen Wert erhalten müssen Sie

Andere Tipps

Ich denke, das ist, was Sie nach, es ist das Ablaufen von Inhalt unter HTTP-Header in IIS-Manager. Ich benutze das Muster kleben statische Inhalte in einem Ordner wie ~ / Ressourcen und die Einstellung der Ablauf für diesen Ordner eine wesentlich längere Lebensdauer als der Rest der Anwendung zu haben.

Hier ist ein Link zum vollständigen Artikel: IIS 6.0 F1: Eigenschaften der Website - Registerkarte HTTP-Header

Für andere von Google kommen. Dies wird nicht in iis6 arbeiten , sondern arbeitet in 7 und höher

In Ihrer web.config:

<staticContent>
  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>

in IIS Admin Sie es für jeden Dateityp festlegen können, oder Sie können (für dynamisch diejenigen wie aspx) tun es im Code. Nachdem Sie es eingerichtet haben müssen Sie die Header überprüfen, die Plugin-Live-Header wie Mozilla Firefox + Ausgang mit einem Werkzeug sind - oder Sie können ein Web-basiertes Tool wie http://www.httpviewer.net/

Ich weiß nicht, ob dies ist, was Sie suchen, aber es ist meine Seiten nicht hält im Cache gespeichert werden.

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0">

Ich habe diese aus einem Artikel auf der Linie, die ich nicht mehr für eine Referenz haben.

Terrible Lösung, der erste Befehl mit adsutil erstellen wird mit Fehler -2147024713 (0x800700b7) fehlschlagen, da die Dateien, die Sie bereits vorhanden zu schaffen versuchen.

Danke.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top