Próbuję zrobić coś, co według mnie byłoby dość proste. Pobierz IIS 7, aby powiedzieć klientom, że mogą buforować wszystkie obrazy w mojej witrynie przez określony czas, powiedzmy 24 godziny.
Próbowałem tego kroku na http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx, ale bezskutecznie. Nadal otrzymuję żądania przychodzące do serwera z zwracanymi 304s.
Czy ktoś ma na to sposób? Mam witrynę z intensywną grafiką, a moi użytkownicy (podobnie jak mój serwer) są atakowani za każdym razem, gdy żądają strony. Dziwne, że obrazy wydają się mieć „Cache-Control private, max-age = 3600” pojawiające się w Firebug, ale przeglądarka nadal żąda ich, kiedy naciskam F5.
Cache-Control
(max-age
) nagłówki dla różnych typów MIME lub rozszerzeń plików?To nieprawda, Jeff.
Wystarczy wybrać folder w interfejsie użytkownika Menedżera usług IIS 7 (np. Obrazy lub zdarzenie folder domyślnej aplikacji sieci Web), a następnie kliknąć „Nagłówki odpowiedzi HTTP”. Następnie należy kliknąć „Ustaw wspólny nagłówek…” w prawym okienku i wybrać „Wygaś zawartość sieci Web”. Tam możesz łatwo skonfigurować maksymalny wiek 24 godzin, wybierając „Po:”, wpisując „24” w polu tekstowym i wybierając „Godziny” w polu wyboru.
Twój pierwszy akapit dotyczący wpisu web.config ma rację. Dodałbym atrybut cacheControlCustom-attribute, aby ustawić nagłówek kontroli pamięci podręcznej na „public” lub cokolwiek jest potrzebne w tym przypadku.
Możesz oczywiście osiągnąć to samo, dostarczając w razie potrzeby wpisy (lub pliki) web.config.
Edycja: usunięto mylące zdanie :)
źródło
Cache-Control
(max-age
) dla różnych typów MIME lub rozszerzeń plików?używam tego
buforować statyczną zawartość przez 500 dni za pomocą publicznego nagłówka Cache-Control.
źródło
F5 Refresh ma semantykę "proszę przeładować bieżący HTML ORAZ jego bezpośrednie zależności". Dlatego powinieneś spodziewać się, że wszystkie zasoby imgs, css i js, do których bezpośrednio odwołuje się kod HTML, również zostaną poprawione. Oczywiście 304 jest akceptowalną odpowiedzią na to, ale odświeżanie F5 oznacza, że przeglądarka wykona żądanie zamiast polegać na świeżej zawartości pamięci podręcznej.
Zamiast tego spróbuj po prostu przejść do innego miejsca, a następnie wrócić.
Możesz wymusić odświeżenie, poza 304, przytrzymując ctrl i naciskając klawisz F5 w większości przeglądarek.
źródło
Aby buforować zawartość statyczną przez 365 dni z publicznym nagłówkiem kontroli pamięci podręcznej , usługi IIS można skonfigurować w następujący sposób
To przełoży się na taki nagłówek:
Należy pamiętać, że maksymalny wiek to delta w sekundach wyrażona przez dodatnią 32- bitową liczbę całkowitą, jak podano w RFC 2616, sekcje 14.9.3 i 14.9.4 . Odpowiada to maksymalnej wartości 2 ^ 31 lub 2 147 483 648 sekund (ponad 68 lat). Jednak, aby lepiej zapewnić kompatybilność między klientami a serwerami, przyjmujemy zalecane maksymalnie 365 dni (jeden rok).
Jak wspomniano w innych odpowiedziach, możesz użyć tych dyrektyw również w pliku web.config swojej witryny dla całej zawartości statycznej. Alternatywnie możesz go używać tylko dla treści w określonej lokalizacji (na przykładzie, 30-dniowa publiczna pamięć podręczna dla zawartości w folderze „cdn”):
źródło
jest na to prosty sposób: 1. używając web.config strony 2. w sekcji "staticContent" usuń określony plik fileExtension i dodaj mimeMap 3. dodaj "clientCache"
źródło