Ako donútiť prehliadač aby si obnovil linkovaný CSS súbor

Situácia je jasná: mám v dokumentoch linkovaný súbor CSS. Je to statický súbor a je to tak práve preto, aby si ho prehliadače stiahli a pri neskorších návštevách použili jeho kópiu zo svojej lokálnej cache.
Lenže postačí mať potrebu niečo v CSS súbore zmeniť a už sú tu problémy. Niekoľko dní ľudia vidia pôvodnú verziu. Pre operatívne opravy, zmeny je takéto niečo neprípustné.
Viem si predstaviť niekoľko riešení takéhoto problému ale pýtam sa, ktoré je najbezproblémovejšie zo všetkých uhlov pohľadu:
* „verziovanie“: názov súboru s CSS bude obsahovať meniteľné číslo verzie a v HTML kóde sa to bude príslušne meniť,
* „dynamicky“ generované CSS: miesto lokálneho statického súboru bude CSS generovať PHP/perl skript a posielať ho prehliadačom,
* „rozdeľ a panuj“: rozdelím CSS na viac súborov pričom statickejšie veci budú v statických súboroch ale to, čo sa mení pričasto, prejde na niektorý z prvých spôsobov,
* „webserver“: nastavenie servera by mohlo zamedziť tomu aby si prehliadače CSS ukladali do cache – to je ale nepríjemné riešenie, dá sa nastaviť aby si „po zmene“ nejako vynútil webserver nové stiahnutie CSS súboru?
Toto je praktická otázka, čiže sú vítané konkrétne riešenia bez toho aby som musel RTFM :-)
Hej. Čo som to za webmastra, keď takéto triviality neovládam :-) Ironiu a invektívy sme už vybavili, tak sa na tom v komentároch neodbavujte :-)

Written by rony

8 komentárov

tiso

src=“style.css?t=123456″
Proste pokiaľ bol css súbor zmenený počas posledných x hodín (ja mám nastavené 2 dni, dá sa natrvalo…), tak ku linku generujem ešte parameter t ktorý obsahuje timestamp poslednej zmeny súboru. Ešte som netestoval ako je to s funkčnosť tohto riešenia, mám obmedzené testovacie možnosti. Pekné riešenie, nie?

jklmn

ja to riesim rovno takto (nahradil som zobaky zatvorkami [])
[link href=“style.css?[?=filemtime(„style.css“);?]“ type=“text/css“ rel=“stylesheet“ media=“all“]

rony

[1] hej, to je technicky najjednoduchsie. Teraz uz len dufat, ze prehliadace to urcite chapu ako novy subor :-)
[2] ano, podobne ako v [1]
[3] nezozral kus kodu moj komentovaci system?

Comments are closed.