/ / Niech obrazy nie będą buforowane przy użyciu mod_headers lub mod_expires - javascript, apache

Spraw, aby obrazy nie były buforowane za pomocą mod_headers lub mod_expires - javascript, apache

Moje pytanie dotyczy jednego posta omówionego jakiś czas temu: jak wyczyścić lub zastąpić obraz z pamięci podręcznej

Pozwól, że przedstawię ci, co robię ... Używam JavaScript, aby utworzyć animację, która będzie aktualizowana co 5 minut. Używam sztuczki polegającej na dodawaniu znaczników czasu do nazw obrazów, więc moje obrazy są takie: image-1-no-cache.png? D = 131415135135

Używam tego, aby zapewnić aktualizację. Jeśli nie zrobię różnicy między nazwami, przeglądarka niczego nie zaktualizuje, ponieważ obrazy będą przechowywane w pamięci podręcznej, a przeglądarka nie będzie wiedziała, że ​​się zmieniły. Problemem jest to, że obrazy są stale przechowywane. Tracę referencje przez JavaScript i nie wiem, jak je usunąć. Po kilku godzinach pamięć podręczna jest pełna obrazów, a strona internetowa zajmuje dużo pamięci RAM.

To, co próbuję teraz zrobić, to ustawić datę ważności obrazów. Włączyłem moduły mod_headers i mod_expires i zmieniłem plik .htaccess, próbując różnych rzeczy:

<Files ~ ".*no-cache.png?=*">
Header set Cache-control "no-cache"
</Files>

lub

<FilesMatch ".*no-cache.png.*">
ExpiresActive On
ExpiresDefault A300
</FilesMatch>

Nic nie działa. Chodzi o to, aby pliki -no-cache.png? =. nie do buforowania. Dlaczego nie osiągam dobrych wyników? Czego mi brakuje ?

Po raz pierwszy próbuję zrobić coś podobnego i jestem całkiem zdezorientowany. Każda pomoc będzie mile widziana. Dziękuję Ci ! Yun

Odpowiedzi:

0 dla odpowiedzi № 1

Dodawanie ?something do obrazu nie sprawiają, że nie można go buforować. To tworzy Nowy URL, który może być buforowalny, i nie wpływa na inne adresy URL, więc wszystkie inne ?versions pozostań również w pamięci podręcznej.

<Files ~ "no-cache.png">
Header set Cache-control "max-age=10, must-revalidate"
</Files>

Dzięki temu Apache doda nagłówek do wszystkich plików za pomocą no-cache.png w dowolnym miejscu w nazwie pliku (.* nie jest potrzebne). AFAIK odpowiada to nazwie systemu plików, a nie adresowi URL, więc ciąg zapytania nigdy tam nie będzie).

Nagłówek mówi o buforowaniu przez maksymalnie 10 sekund i sprawdzaniu świeżości na serwerze przed każdym użyciem.


0 dla odpowiedzi nr 2

To nie działa !

Korzystając z konfiguracji, przeglądarka powinna ponownie zweryfikować (= zaktualizować) obraz po 10 sekundach i tak się nie dzieje.

Myślę, że najlepszą opcją jest ustawienie „Nagłówkaustaw Cache-Control na „no-store”. Jeśli mam wszystkie obrazy przywoływane w tablicy obrazów JavaScript, nie muszę używać pamięci podręcznej. Na razie jest to najlepsza opcja, jaką znalazłem.

Mimo wszystko dziekuję, Yun