ใช้ ySlow บนเว็บไซต์ที่ฉันสนับสนุนฉันสังเกตว่ามีรายงานว่ามีการกำหนดค่า etags ให้กับรูปภาพของเว็บไซต์ (เช่น * .jpg, * .png, * .gif) ใครช่วยอธิบายสิ่งที่ฉันต้องทำเพื่อรับ IIS7 ออก etags เหล่านี้อย่างถูกต้อง?
ใช้ ySlow บนเว็บไซต์ที่ฉันสนับสนุนฉันสังเกตว่ามีรายงานว่ามีการกำหนดค่า etags ให้กับรูปภาพของเว็บไซต์ (เช่น * .jpg, * .png, * .gif) ใครช่วยอธิบายสิ่งที่ฉันต้องทำเพื่อรับ IIS7 ออก etags เหล่านี้อย่างถูกต้อง?
คำตอบ:
คำตอบที่ยอมรับโดย Farseeker ไม่ทำงาน ฉันได้ทำการทดสอบใน IIS 7.0.6000.16386 บน Windows Server 2008 Standard SP 2 แล้ว
Etags นั้นใช้ได้ตราบใดที่คุณไม่แสดงเนื้อหาจากเซิร์ฟเวอร์หลายเครื่อง หากคุณให้บริการจากเซิร์ฟเวอร์เดียวให้ปล่อยไว้ที่นั่น พวกเขาไม่เจ็บ และหากคุณไม่ต้องการให้ YSlow บ่นเกี่ยวกับพวกเขาให้คลิกที่ปุ่มแก้ไขใกล้กับองค์ประกอบเลือกชุดกฎและแก้ไขโปรไฟล์ YSlow (V2) เพียงยกเลิกการเลือกตัวเลือก "กำหนดค่าแท็กเอนทิตี (Etags)"
YSlow ไม่ได้บ่นว่าพวกเขาผิด (แม้ว่าจะเป็นสิ่งที่พูด) แต่ก็บ่นว่าพวกเขาไม่ต้องการ วิธีเดียวที่จะทำให้ YSlow ปิดการทำงานเกี่ยวกับสิ่งนี้คือปิดใช้งาน
สิ่งที่ดีคือวันนี้ฉันเพิ่งทำสิ่งนี้ด้วยตัวเอง!
เปิดตัวจัดการ IIS ของคุณคลิกบนเซิร์ฟเวอร์และไปที่ส่วนหัวการตอบสนอง HTTP คลิกปุ่ม "เพิ่ม ... " และภายใต้ชื่อให้ป้อน:
ETag
(กรณีที่สำคัญ). ภายใต้ค่าให้ป้อน
""
(นั่นคือคำพูดสองครั้ง)
และ ETags เกิดขึ้น!
ดูคำถามStackOverflow ที่คล้ายกัน
ใน iis 6 คุณสามารถเพิ่มหัวข้อที่กำหนดเองสำหรับ 'ETag' = ""
ใน iis 7 ให้เพิ่มกฎการเขียนซ้ำขาออกดังนี้:
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
IIS 7 จะเขียนทับส่วนหัวที่กำหนดเองและโซลูชันอื่น ๆ ทั้งหมดที่เสนอในคำตอบอื่น ๆ ที่หลากหลายเกี่ยวกับปัญหาเดียวกัน กฎขาออกเป็นรายการเดียวที่ดูเหมือนว่าจะทำงานได้เพราะจะเขียนทับสิ่งใดก็ตามที่ตั้งไว้ก่อนที่จะถูกส่งกลับไปยังผู้ใช้ กฎขาออกที่เสนอนี้ตรงกับตัวแปรเซิร์ฟเวอร์ใด ๆ ที่ตั้งชื่อRESPONSE_ETag
ตราบใดที่ค่าที่RESPONSE_ETag
มีหนึ่งตัวอักษรขึ้นไปและเขียนค่าให้เป็นสตริงว่าง
โปรดดูคำตอบสำหรับSet Server response header ใน IIS7สำหรับวิธีแก้ปัญหาบางส่วน ใช่ทางออกที่สมบูรณ์จะดีจริงๆ แต่ฉันจะทำสิ่งที่ฉันจะได้รับ
ใช้สิ่งนี้ดีกว่า:
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
<action type="Rewrite" value="{R:1}" />
</rule>
</outboundRules>