2009-01-13 13 views
46

Przeglądam właśnie html moim ulubionym miejscu ... hm ... a ja widziałem to w znacznikach:Co oznacza znak "?" zrobić w linku Css?

<link href="/Content/all.min.css?d=20090107" rel="stylesheet" type="text/css" /> 

co ma robić „D = 20090107?”? Zakładam, że jest to randka, ale nie jestem pewien, dlaczego znajduje się w ścieżce do pliku. Jakieś pomysły?

+0

@ James Burgess: odrobina rekursji google. =) – Jronny

Odpowiedz

69

To jest tutaj, aby dodać wyjątkowość do nazwy pliku, tak aby po zmianie pliku CSS, mogli zmienić dodatkowy bit, aby być całkowicie pewnym, że każdy klient przeładuje CSS zamiast używać wersji buforowanej.

serwera WWW ignoruje parametr i służyć /Content/all.min.css normalnie

Uwaga: Chociaż to możliwie CSS generowany dynamicznie, jest to wspólny idiom za zapewnienie przeładowanie, a biorąc pod uwagę parametr jest datą, wydaje się całkiem prawdopodobny.


Edit: Podcast 38 wspomniał o tym ...

Używamy Expires lub Cache-Control nagłówka ponieważ uruchomiona. To oszczędza w przeglądarkach podróży w obie strony przy rzadkich zmianach, takich jak obrazy, obrazy jajek, lub css. Wadą jest , że kiedy faktycznie zmienisz te pliki, musisz pamiętać o zmienić nazwy plików. Część naszego procesu budowania teraz "oznacza" te pliki z numerem wersji, więc nie musimy już pamiętać, aby zrobić to ręcznie.

+0

jak sprytnie. Oznacza to, że zawsze oszukujemy przeglądarkę, która zmieniła plik! – istrone

12

Jest to "wyczyszczenie pamięci podręcznej" za każdym razem, gdy styl jest aktualizowany. Spekulowałbym, że ktokolwiek odpowiada za te style, zwiększa go za każdym razem, gdy następuje zmiana. Dzieje się tak, ponieważ przeglądarka widzi inny adres URL w polu stylu, więc pobierze najnowszą wersję, nawet jeśli jest technicznie w tym samym miejscu na serwerze.

Jak pomocniczo wskazano w komentarzach, pliki css często mają swoje wygasanie ustawione również w przyszłości, ta metoda jest miłym krokiem do buforowania powiązanych nagłówków.

Całkiem przydatna sztuczka.

+2

Tak, serwer ustawiłby nagłówek wygasania dla plików css w odległej przyszłości, aby zapobiec niepotrzebnym żądaniom, które po prostu zwrócą niezmodyfikowaną odpowiedź. Tak więc, gdy plik rzeczywiście się zmienia, serwer musi zmodyfikować nazwę pliku, aby zapobiec trafieniu pamięci podręcznej przeglądarki. – CurtainDog

4

Chodzi o to, aby przeglądarka myślała, że ​​jest to nowy plik, za każdym razem, aby odświeżyć pamięć podręczną.

Bardzo przydatne, gdy arkusze stylów zmieniają się regularnie ...