yslow, etag'ların yanlış yapılandırıldığını söylüyor. IIS7'de etag'ları düzgün şekilde nasıl yapılandırırım?


20

YSlow'u desteklediğim bir web sitesinde çalıştırarak, etags'ın site görüntüleri için yanlış yapılandırıldığını (ör. * .jpg, * .png, * .gif) bildirdiğini fark ettim. Herkes IIS7 bu etags doğru vermek için ne yapmam gerektiğini açıklamak yardımcı olabilir mi?

Yanıtlar:



12

Birden fazla sunucudan içerik sunmadığınız sürece etags iyi durumdadır. Yalnızca bir sunucudan hizmet veriyorsanız, onları orada bırakın. Onlar incinmezler. Ve YSlow'un şikayet etmesini istemiyorsanız , Kural Kümeleri seçim öğesinin yanındaki Düzenle düğmesini tıklatın ve YSlow (V2) profilini düzenleyin. "Varlık etiketlerini (Etags) yapılandır" seçeneğinin işaretini kaldırmanız yeterlidir.


7
+1 YSlow, birçok şeyin "salt ölümlü" web sitelerini etkilememesinden şikayet ediyor. (Hayır YSlow, CDN'ye ihtiyacım yok ve ihtiyacım yok. Lütfen daha önce sızlanmayı bırakın.)
Gerald Combs

Kural kümesi değişikliği hakkında doğrudur.
MikeJ

11

YSlow, yanlış olduklarından şikayet etmiyor (söylediği gibi olsa da), ancak ihtiyaç duyulmadığından şikayet ediyor. YSlow'un bunu kapatmasını sağlamanın tek yolu onları devre dışı bırakmaktır.

İyi olan şu ki, bunu bugün kendim yaptım!

IIS yöneticinizi açın, sunucuyu tıklayın ve HTTP Yanıt Başlıkları'na gidin. "Ekle ..." düğmesini tıklayın ve adın altına şunu girin:

ETag

(harfe duyarlı). Değer'in altına,

""

(bu iki çift tırnak)

Ve ETag'lar başladı!


Diğerlerinin belirttiği gibi, ETag'leri yalnızca ihtiyacınız olduğunu biliyorsanız kaldırmalısınız; çoğu durumda, durum böyle olmaz.
Bobby Jack

1
Durum böyle olabilir, ancak konunun gerçeği cevabın soruyu doğru cevaplamasıdır.
Mark Henderson

1
Soru 'IIS7'nin bu etag'ları doğru bir şekilde yayınlamasını nasıl sağlayabilirim?' Cevabınız ETag'leri toplamayı bırakmaktı, bu da olası bir performans isabeti ve muhtemelen gereksizdi (soruda CDN kullanımından bahsedilmiyordu).
Bobby Jack

2
@Bobby: OP, örtük olarak "IIS7'yi YSlow tarafından tanımlandığı şekilde bu etag'ları doğru bir şekilde nasıl yayınlayabilirim ?" Sorusunu soruyor . ve YSlow söz konusu olduğunda tek "doğru" yapılandırma, bunları devre dışı bırakmaktır.
Kip

1
@Kip, hayır, örtük kısım örtüktür ve tahmin edemezsiniz. Ancak OP'nin makul bir kişi olduğunu varsayarak, muhtemelen "YSlow'a göre yapılandırma yetersiz görünüyor, bunu en uygun hale nasıl getirebilirim?" - Ve sonra bu cevap biraz komik. "Ünite testim neden şikayet ediyor?" - "Sadece birim testini silin, artık şikayet etmeyeceksiniz!"
chiccodoro


3

İis 6'da, 'ETag' = "" için özel bir başlık ekleyebilirsiniz.

İis 7'de, giden yeniden yazma kuralını aşağıdaki gibi ekleyin:

<outboundRules>
  <rule name="Remove ETag">
    <match serverVariable="RESPONSE_ETag" pattern=".+" />
    <action type="Rewrite" value="" />
  </rule>
</outboundRules>

IIS 7, özel sorunların ve aynı sorunla ilgili diğer çeşitli yanıtlarda önerilen tüm diğer çözümlerin üzerine yazacaktır. Giden kuralları, kullanıcıya dönmeden hemen önce ayarlanan her şeyin üzerine yazdığı için işe yarayan tek öğedir. Önerilen bu giden kuralı RESPONSE_ETag, değeri RESPONSE_ETagbir veya daha fazla karakter içerdiği ve değeri boş bir dize olarak yeniden yazdığı sürece adlandırılan herhangi bir sunucu değişkeniyle eşleşir .



1

Bunu daha iyi kullanın:

<outboundRules>
  <rule name="Remove ETag">
    <match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
    <action type="Rewrite" value="{R:1}" />
  </rule>
</outboundRules>

3
Sunucu Arızasına Hoşgeldiniz! Sihirli baytlar kesinlikle güzel olsa da, bunun neden doğru olduğunu açıklarsanız bunu okuyan diğer insanlar için harika.
Falcon Momot
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.