Mam trochę zawartości statycznej z Max-Age
dołączonymi nagłówkami kontroli pamięci podręcznej , więc klienci będą buforować zawartość statyczną. Jednak usługi IIS 7.5 nadal wysyłają ten nagłówek, gdy pojawiają się odpowiedzi na błędy zalecające klientowi buforowanie tego.
Ma to negatywny wpływ na to, że niektóre serwery proxy buforują tę odpowiedź na błąd. Mógłbym, Vary: Accept,Accept-Encoding
ale tak naprawdę nie rozwiązuje to głównego problemu Max-Age
wychodzenia z odpowiedzi na błędy.
Obecna odpowiednia web.config
sekcja IIS to:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
Czy istnieje sposób, abym mógł to zrobić, abyśmy nie mówili klientom ani serwerom proxy, aby buforowali kody błędów 400/500?
Odpowiedzi:
Stworzyłem podstawowy zestaw testowy.
Gdy uruchamiam testy z minimalną konfiguracją Web.config w IIS 7.0 (zintegrowany tryb potokowy w .NET 4.0) wszystko mija;
Cache-Control
nagłówek odpowiedzi pliku testowego jest ustawiony,private
gdyAccept
nagłówek żądania nie pasuje do nagłówka plikuContent-Type
.To prowadzi mnie do przekonania, że masz moduł przerywający statyczną procedurę buforowania IIS lub IIS 7.0 i 7.5 różnią się tutaj.
Oto pliki, których użyłem (sans,
some-script.js
ponieważ to tylko pusty plik):Web.Config:
test.html:
źródło
powinieneś określić, jaki rodzaj zawartości będziesz buforować. na przykład możesz buforować skrypty, css, image ..etc. więc użyj
<location path ="Scripts">
tagu przed<system.webServer>
tagiem. więc konfiguracja sieci wygląda tak.źródło