Az utolso megoldas tetszik, de szerintem meg lehet uszni mod_rewrite nelkul is, ha a menu.js.12345678 helyett menu.js?12345678-t hasznalnank. Vagy esetleg ezt mar nem ugy cache-elne valamelyik bongeszo, ahogy szeretnenk?
Igen, nem kell mod_rewrite, teljesen jó a kérdőjeles megoldás is. Viszont a timestamp nem jó, oda bizony verziószám kell - hiszen ellenkező esetben gyakorlatilag nem lesz cacheelés. Ha ez lenne a cél, azt másképp is meg lehetne úszni, de ez ne legyen cél.
nagyon is jó az a timestamp. először én is egyből azt akartam írni, hogy így nem is lesz cache, de
Ha megkaptuk a fájl helyét az aktuális fájlrendszerben lekérdezzük az utolsó módosítás idejét.
[...]
Ennek eredménye egy URI (URL), ami automatikusan változik a fájl minden módosulásával
tehát nem állandóan lesz más az érték, hanem csak akkor, amikor megváltozik a fájl.
Ha a timestamp a file utolso modositasanak datuma (ahogy a cikkben is van), akkor szerintem lesz cache-eles, pont mintha verzioszam lenne ott, csak igy nem kell minden modositaskor a verzioszamot atirni.
András - a tőle megszokott módon - valószínűleg csak átfutotta a cikket, ezért a tévedése. A timestamp a fájl módosításának timestamp-je.
A mod_expires részhez:
A nulla lejárati idő nem tiltja a fájl cache-elését. De így minden oldalletöltésnél lekéri a böngésző a fált, ellenben ha nem változott meg, akkor csak egy 304 kódot fog kapni. Ami - ha még csak egy kérés - még kis forgalmú weblapoknál sem túl gazdaságos megoldás.
Valóban tévedtem, és azért, amiért írod. Ezúton elnézést is kérnék. :( A szerver oldali változás ellenőrzést én egy kicsit másképp oldanám meg, úgy, hogy ne kelljen minden kiszolgáláskor több fájlműveletet is elvégezni (még ha ezt cachelheti is adott esetben az oprendszer), de valóban azt hittem, hogy az éppen aktuális idő kerül oda.
Egyébként a ThinkVitamin hasábjain is ez a kiemelt téma éppen.
A kérdőjel jó ötlet, nekem kezdettől fogva egy valódi filenév emulálása lebegett a szemem előtt. Kitesztelem a kérdőjelet...
Azzal semmiképpen nem értek egyet, hogy a módosítási dátum lekérdezése gazdaságtalan lenne. Ugyan sose mertem megnézni a php ide vágó wrapper funkcióját, de nem hinném, hogy sokkal több van benne egy rendszerhívásnál. Ami gyorsabb lehet, az maximum valami shared memory-s megoldás, de akinek számít az erőforrás-használat az nem php-t választ.. :)
...az egy include fájl, ami valahogy (verziókezelőből, cronból, stb.) automatikusan generálódik. Nem tudom, lehet, hogy igazad van, hogy nem kell ezzel foglalkozni. Valamiért bántja a csőrömet ez a timestampes megoldás, de mivel abszolút logikusan hangzik amit írsz, hát lehet, hogy rászokom... ;)
kell a mod_rewrite?
igen
először én is azt hittem
[...]
Ennek eredménye egy URI (URL), ami automatikusan változik a fájl minden módosulásával
tehát nem állandóan lesz más az érték, hanem csak akkor, amikor megváltozik a fájl.
gex
timestamp
ExpiresByType
A mod_expires részhez:
A nulla lejárati idő nem tiltja a fájl cache-elését. De így minden oldalletöltésnél lekéri a böngésző a fált, ellenben ha nem változott meg, akkor csak egy 304 kódot fog kapni. Ami - ha még csak egy kérés - még kis forgalmú weblapoknál sem túl gazdaságos megoldás.
Mea culpa
Egyébként a ThinkVitamin hasábjain is ez a kiemelt téma éppen.
bárányborda
Azzal semmiképpen nem értek egyet, hogy a módosítási dátum lekérdezése gazdaságtalan lenne. Ugyan sose mertem megnézni a php ide vágó wrapper funkcióját, de nem hinném, hogy sokkal több van benne egy rendszerhívásnál. Ami gyorsabb lehet, az maximum valami shared memory-s megoldás, de akinek számít az erőforrás-használat az nem php-t választ.. :)
Ami gyorsabb lehet...
Cache control headerek?