„Läuft ab“ in HTTP-Header für statische Inhalte? wie man
-
01-07-2019 - |
Frage
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
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.