2010-06-10 15 views
19

Sitemize karşı sadece Google's Page Speed uygulamasını çalıştırdım ve önerilerinden biri . Bu şu ortaya Genişleyen:Tarayıcımızın resimlerimizi önbelleğe almasını isteme (ASP.NET/IIS)

Aşağıdaki önbelleğe alınabilir kaynaklar var kısa tazelik süresi:

< uzun bir liste: aşağıdaki kaynaklarda en az bir hafta geleceği için son kullanma tarihi belirtin görüntülerin >
< bazı javascript dosyaları >

Belli görüntülerin "tazeliğin ömrü" ni uzatmak için nasıl giderim?

It resimler, html, js, css dosyaları da dahil olmak üzere Statik içeriğe Başlığını sona eriyor eklemek zorunda kalacak IIS7.5

+0

Bunun için iyi bir yanıtı yok mu? :( –

cevap

49

başka yerde bu sitede Sorumun cevabını buldum. Woot! (Gabriel McAdams tarafından gönderildi gibi) (. Ben ilk bu yayınlanmıştır zaman görünmez, ama sonunda var, aldırma neden emin değil) ilgilenenler için

, cevap şuydu:


Bunu, IIS'de yaparsınız. IIS 7'yi kullanıyorsanız, üstbilgiyi web.config dosyanıza ekleyebilirsiniz. System.webServer bölümünde.

<staticContent> 
    <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" /> 
</staticContent> 

Bu

tüm statik içeriği bir yıl 2020 Statik içerik olarak ayarlanmış HTTP başlığı sona sahip olmasına neden olur resim, komut dosyaları ve stilleri yaprak olarak ASP.NET motoru üzerinden sunulmuyor şey ifade etmiyor.

Ya göreceli bir süre sonu kullanmak, bunu kullanın:

<staticContent> 
    <clientCache cacheControlMaxAge ="2.00:00:00" cacheControlMode="UseMaxAge" /> 
</staticContent> 

Bu 2 gün olarak ayarlanmış HTTP başlığı sona eriyor olması tüm statik içerik neden olur.

+3

Sitemizin hızı yaklaşık% 400 artmıştır Huzzah! –

+0

Size bundan farklı bir cevap verdim mi? Yazmış olduğum konfigürasyon da aynı şeyi yapıyor.Ve ayrıca cevabınız belirli görüntülere özgüydi –

+9

Um, ne? 1. Hiçbir şey açıklamıyorsunuz, sadece birisini gönderdiniz Başka bir sorudan başka bir cevap: 2. Özellikle sorduğumda bile içeriğin nasıl etkileneceğini açıklamıyorsunuz. Düzenleme: Bunu eklediniz gibi görünüyor 3. Gelecekte bir tarih belirlemek benim için faydalı bir çözüm değil. Cevabımı düşürdüğüne inanamıyorum, bu inanılmaz derecede sakat ama ne olursa olsun .. –

3

üzerinde çalışan bir ASP.NET proje. Kolayca web.config en system.webServer bölüm kullanarak IIS7 başlığını sona ekleyebilirsiniz:

 
<staticContent> 
    <clientCache httpExpires="Mon, 1 May 2020 05:00:00 GMT" cacheControlMode="UseExpires" /> 
</staticContent> 
+0

Ne yazık ki cevabınız beni şaşkın bıraktı :(Bu, kullanıcılara sunduğumuz TÜM içeriği etkiler mi? Sormamda sorduğum gibi, belirli görüntüleri nasıl belirtebiliriz? her şeyi önbelleğe almak için tarayıcı ...) –

+0

İstek üzerine, ASP ve IIS platformundaki sınırlamalarım için size bir cevap verebilirdim. Apache'de bunun için .htaccess dosyası olduğunu biliyorum. Ama neyse, neden sadece birkaç görüntünün önbelleğe alınmasını ve hepsini değil. Ne fark eder ki. –

+0

Korkarım benim soruma cevap vermediniz :(Bu etki TÜM kullanıcılara ilettiğimiz içerik Teşekkürler –

1

Genelde istediğiniz tüm öğeleri (css, js ve images) önbelleğe almaktır, böylece html dosyası çache busting links olacaktır, böylece görüntüleri güncelleyebilirsiniz.

Bunun çalışması için, html dosyaları staticContent'un bir parçası olamaz. html dosyaları için yeni bir işleyici eklenmesi, bunların kalıcı olarak önbelleğe alınmasını önler.

<staticContent> 
     <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" /> 
    </staticContent> 
    <handlers> 
     <add 
     name="HtmlHandler" 
     path="*.html" 
     verb="*" 
     type="System.Web.Handlers" 
     preCondition="integratedMode" 
     /> 
    </handlers> 
İlgili konular