Wie stelle ich die cachability von statischen Dateien in IIS?
-
08-07-2019 - |
Frage
Ich habe einige statischen Bilder in einem Ordner auf IIS 6-basierte Website, die ich so wenig wie möglich heruntergeladen werden soll (Bandbreite erhalten). Ich habe das Ablaufen von Inhalt festgelegt nach 30 Tagen ablaufen. Gibt es etwas, was ich in IIS tun kann, um zu versuchen, das Caching von Browsern, Proxy und Gateway-Caches zu maximieren?
Wie ein Cache-Control-Header hinzufügen? Sonst noch etwas?
Lösung
http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx
Dies ist ein Blog-Post Abdeckung wie folgt vor:
- Zulassen zwingende statische Inhalte Einstellung
- gesetzt Cache-Einstellungen mit folgenden Befehlen
- Cache es auf den Client
Andere Tipps
Hier ist meine Antwort auf dieser Frage: „Läuft ab“ in hTTP-Header für statische Inhalte? How-to
@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
REM *******
REM SET THIS TO POINT TO adsutil.vbs - TYPICALLY c:\inetpub\adminscripts\adsutil.vbs
REM *******
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