2012-09-27 13 views

cevap

1

Genellikle, bir şey yapmanıza gerek yoktur - en “normal” web sunucuları uygun statik önbellek başlıklarıyla statik içerik hizmet verecek. Ancak, kendi belirttiğiniz veya bir nedenden ötürü sunucunuzun önbelleğe alınmaması için statik içeriğe neden olan başlıklar gönderiyorsanız, içeriğin önbelleğe alınmasını engelleyen herhangi bir üstbilgiyi geçersiz kılmak veya kaldırmak isteyeceksiniz.

İçeriğinizin üstbilgilerini görmek için içeriğinizin başlıklarını (Firefox'ta Firebug'un “Net” sekmesi, web sitesi http://web-sniffer.net/ veya benzeri) görebileceğiniz bir program kullanın. “Cache-Control” ve “Expires” gibi şeyleri kontrol edin. İçerik önbelleğe almayı engelleyen bir önbellek denetimi üstbilgisine sahipse veya bu süre dolmuşsa, Cloudflare (ve diğer önbelleklerin) önbelleğe almasını engeller ve bunları kaldırmanız veya değiştirmeniz gerekir.

Çok genel bir kural olarak, bir şeyin önbelleğe alınmasına izin vermek için, gelecekte bir şeylerin Süresi'ni belirtin ve bir üst-yaş ile bir Önbellek Kontrolü belirtin = ileride bir süre, ancak üstbilgiler gönderme, ne sunduğunuza, hangi sunucuyu kullandığınıza, istemcinin ne olduğuna, vb. bağlı olacaktır.

Çeşitli önbellek başlıklarını öğrenme ve anlamadan en kolay yol, bazılarına bakmak için muhtemelen http://web-sniffer.net/ gibi bir şey kullanmaktır. önbelleğe alınan diğer içeriği ve başlıklarını kopyalayın. Örneğin, http://web-sniffer.net/?url=ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js

Not Her zaman Çevrimiçi genellikle benim deneyim, işe gelmez.

// set the most basic caching headers in PHP (cache for 1 month) 
header('Cache-Control: public'); 
header('Expires: '.gmdate('D, d M Y H:i:s', strtotime('+1 month')).' GMT'); 

kısa bir açıklama için http://hardanswers.net/dynamic-webpage-caching bakınız.

1

Kullanılması 'genel' Cache-Control benim için bir sorun, benim sayfalarının en çok dinamik olduğu için (bir Webshop) olduğu gibi. Bu yüzden sadece CloudFlare’ı önbelleklemeye söyledim.

Cloudflare kullanıcı aracısı olarak Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +http://www.cloudflare.com/always-online) kullanır. CloudFlare'a, sayfalarınızı PHP veya .htaccess ile (bkz. Ned Martin'in çözümü) önbelleğe almasını söyleyebilir, ancak diğer ziyaretçilere sayfalarınızı önbelleğe almamalarını söyleyebilirsiniz.

3

Always Online'ın (ve birçok önbelleğimizin) düzgün çalışmasını istiyorsanız, önbellek ve özel başlıklara sahip olmak istemezsiniz.

"resimlerinizin CDN tarafından önbelleğe?" Dosya uzantısına göre site kaynaklarını otomatik olarak önbelleğe alıyoruz (Flickr veya Facebook widget'ları gibi saha dışı kaynakları önbelleğe almıyoruz). Not: Her Zaman Çevrimiçi, & bazı sınırlamalara sahiptir, bu sınırlamaların tümü belgelerinizde (sunucu yanıt kodları, vb.) Belirtilmiştir. Siteyi yalnızca yakın zamanda CloudFlare'ye eklediyseniz, gerçekten önbellekte gerçekten görünecek hiçbir şey olmayacaktır (Her Zaman Çevrimiçi tarayıcı belirli zamanlarda söner).

Her Zaman Çevrimiçi'nin gelecekteki bir yinelemesi, kullanıcıların belirli sayfaları "iğnelemesine" olanak tanır; bu, şu anda sahip olduğumuz bazı sınırlamaları (umarım) şu andaki resimden çıkarır.

+0

'Set-Cookie 'başlığı, Always Online'ın bir sayfayı önbelleğe almasını engeller mi?URL Rewrite'i kullanarak IIS tarafından barındırılan siteme farklı önbellek başlıkları eklemeyi denedim, ancak hiçbir şey yardımcı gözükmüyor. URL Rewrite bir başlık kaldıramıyor, sadece boş bir dize yapabilir, bu yüzden boş 'Set-Çerez' sorun ya da başka bir şey olup olmadığından emin değilim. – jwalker

İlgili konular