PHP, ben Rails senaryo bir sayfa çalmaya çalışırken ('Varlık damgaları kullanımı' here) ediyorum:
By default, Rails appends assets' timestamps to all asset paths. This allows you to set a cache-expiration date for the asset far into the future, but still be able to instantly invalidate it by simply updating the file (and hence updating the timestamp, which then updates the URL as the timestamp is part of that, which in turn busts the cache).
It‘s the responsibility of the web server you use to set the far-future expiration date on cache assets that you need to take advantage of this feature. Here‘s an example for Apache:
# Asset Expiration
ExpiresActive On
<FilesMatch "\.(ico|gif|jpe?g|png|js|css)$">
ExpiresDefault "access plus 1 year"
</FilesMatch>
Eğer Rails sayfa için bir kaynak bakarsanız, onlar ne anlama geldiğini görürsünüz: dosyanın son güncelleme ne zaman sonunda numaraları damgası nerede bir biçembente yolu, "/stylesheets/scaffold.css?1268228124"
olabilir .
Yani bu gibi çalışması gerekir:
- Tarayıcı, 'Bana bu sayfayı ver' diyor
- Sunucu 'burada ve bu arada,
scaffold.css?1268228124
, bir yıl boyunca önbelleğe alınabilir denilen bu stil - bu değişmeyecek' diyor. - Reloads, tarayıcı 'benim yerel kopyası hala iyidir, çünkü bu css dosyası için sormuyorum.' Diyor
- Bir ay sonra, düzenlemek ve dosya artık
scaffold.css?1268228124
sayılar değişiklik nedeniyle denir anlamına gelir, zaman damgası değiştirir dosyayı kaydedin. - Tarayıcı olduğunu gördüğünde, ben o dosyayı görmedim 'diyor! Bana bir kopyasını verin lütfen. ' Cache 'baskın.' Olduğunu
Ben o parlak olduğunu düşünüyorum. Yani dosya isimlerinin sonuna damgaları ile stil ve javascript etiketleri dışarı tükürüyor bir işlev yazdı ve ben yukarıdaki deyimi ile Apache yapılandırılmış.
Ver: how do I tell if the caching and cache busting are working?
YSlow ve Google Page Speed: Kundakçı için iki eklentileri ile benim sayfaları kontrol ediyorum. YYAVAŞ ve Page Speed "kaldıraç tarayıcı önbelleği" hem kontrol edilir de "Add başlıklarını sona eriyor:" Her ikisi de benim dosyaların önbelleğe olduğunu söylemek gibi görünüyor.
Ben Page Speed Aktivite baktığımızda, ben istekleri ve bekleyen bir sürü ve hayır 'cache hit' bkz.
Benim stil değiştirmek ve yeniden, ben hemen bir değişiklik görüyorum. Tarayıcı ilk etapta veya önbellek baskın çünkü hiçbir zaman önbelleğe çünkü Ama eğer ben bilmiyorum.
Ben nasıl anlayabilirim?
Update: It's working!
Herkes ilgilenen varsa, ben sadece yazdım a blog post explaining the details.