Hoe configureer ik statische inhoudcache per map en extensie in IIS7?

Ik wil regels instellen in IIS7 voor het cachen van statische inhoud in mijn ASP.NET-website.

Ik heb deze artikelen gezien, waarin wordt beschreven hoe u dit moet doen met het element <clientCache />in web.config:

Clientcache <clientCache>(IIS. NET)
Voeg Expires of Cache Control Header toe aan statische inhoud in IIS (Stack Overflow)

Deze instelling lijkt echter globaal van toepassing te zijn op alle statische inhoud. Is er een manier om dit alleen voor bepaalde mappen of extensies te doen?

Ik kan bijvoorbeeld twee mappen hebben die aparte cache-instellingen nodig hebben:

/static/images
/content/pdfs

Is het mogelijk om regels in te stellen voor het verzenden van cacheheaders (max-age, expires, enz.) op basis van extensies en mappaden?

Let op, ik moet dit kunnen doen via web.configomdat ik geen toegang heb tot de IIS-console.


Antwoord 1, autoriteit 100%

Je kunt specifieke cache-headers voor een hele map instellen in je 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>

Of u kunt deze specificeren in een web.config-bestand in de inhoudsmap:

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

Ik ben niet op de hoogte van een ingebouwd mechanisme om specifieke bestandstypen te targeten.


Antwoord 2, autoriteit 31%

U kunt dit per bestand doen. Gebruik het path-attribuut om de bestandsnaam op te nemen

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

Antwoord 3

Ik had hetzelfde probleem. Voor mij was het probleem hoe ik een cachelimiet voor afbeeldingen moest configureren. En ik kwam deze site tegen die wat inzicht gaf in de procedure over hoe het probleem kan worden afgehandeld. Ik hoop dat het nuttig zal zijn voor jij ook
Link:[https://varvy.com/pagespeed/cache-control.html]

Other episodes