it-swarm.com.de

Wie konfiguriere ich den statischen Inhaltscache pro Ordner und Erweiterung in IIS7?

Ich möchte in IIS7 Regeln für das Zwischenspeichern statischer Inhalte auf meiner ASP.NET-Website einrichten.

Ich habe die folgenden Artikel gesehen, in denen detailliert beschrieben wird, wie das Element <clientCache /> In web.config Verwendet wird:

Client-Cache <clientCache> (IIS.NET)
Füge Expires oder Cache Control Header zu statischem Inhalt in IIS (Stack Overflow) hinzu

Diese Einstellung scheint jedoch global für alle statischen Inhalte zu gelten. Gibt es eine Möglichkeit, dies nur für bestimmte Verzeichnisse oder Erweiterungen zu tun?

Zum Beispiel kann ich zwei Verzeichnisse haben, die separate Cache-Einstellungen benötigen:

/static/images
/content/pdfs

Ist es möglich, Regeln für das Senden von Cache-Headern (max-age, expires usw.) basierend auf Erweiterungen und Ordnerpfaden einzurichten?

Bitte beachten Sie, dass ich in der Lage sein muss, dies über web.config Zu tun, da ich keinen Zugriff auf die IIS Konsole habe.

140
frankadelic

Sie können bestimmte Cache-Header für einen ganzen Ordner in entweder Ihrem root web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- Note the use of the 'location' tag to specify which 
       folder this applies to-->
  <location path="images">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
      </staticContent>
    </system.webServer>
  </location>
</configuration>

Oder Sie können diese in einem web.config Datei im Inhaltsordner:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
    </staticContent>
  </system.webServer>
</configuration>

Mir ist kein integrierter Mechanismus für die Ausrichtung auf bestimmte Dateitypen bekannt.

213
Kev

Sie können dies auf Dateibasis tun. Verwenden Sie das Pfadattribut, um den Dateinamen einzuschließen

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="YourFileNameHere.xml">
        <system.webServer>
            <staticContent>
                <clientCache cacheControlMode="DisableCache" />
            </staticContent>
        </system.webServer>
    </location>
</configuration>
66
Jeff Cuscutis