การกำหนดค่า favicon ด้วยส่วนหัวหมดอายุใน htaccess


12

ฉันได้ติดตั้ง Expires header ผ่าน mod_expires บนเซิร์ฟเวอร์ Apache ของฉันและสร้างส่วนหัว expires ได้สำเร็จสำหรับไฟล์ส่วนใหญ่ แต่ฉันมีปัญหากับ favicon

ฉันเริ่มลองเพิ่มชุดคำแนะนำสำหรับไฟล์. ico แต่เมื่อตรวจสอบผ่าน YSlow จะไม่มีชุดหมดอายุ

เมื่อสิ่งนี้ไม่ทำงานฉันก็แก้ไขให้เป็น GIF อย่างไรก็ตามสิ่งนี้ดูเหมือนจะมีปัญหาเดียวกัน

gif อื่น ๆ ในเว็บไซต์ได้ตั้งค่าการหมดอายุของส่วนหัวอย่างถูกต้อง (accoridng เป็น YSlow อย่างน้อย)

ทุกคนสามารถให้ความกระจ่างเกี่ยวกับสถานการณ์นี้ได้ไหม

คำตอบ:


19

หากคุณใช้ Apache เพียงเพิ่ม MIME-Type สำหรับ favicon ในไฟล์. htaccess ของเว็บไซต์ของคุณหรือไปยังไฟล์ mime.types ของ Apache:

# Add Proper MIME-Type for Favicon
AddType image/x-icon .ico

จากนั้นตั้งค่าส่วนหัว Expires สองสามเดือนในอนาคต:

# Enable Apache's mod_expires Module
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"

หลังจากล้างแคชของเบราว์เซอร์แล้วโหลดหน้าอีกครั้งคุณควรเห็นไฟล์ favicon.ico ที่ให้บริการโดยส่วนหัว Cache-Control จะถูกตั้งค่าเป็นวันที่ (ระบุเป็นวินาที) ในอนาคต:

Content-Type image/x-icon
Cache-Control: max-age=2592000

สำหรับข้อมูลที่เกี่ยวข้องดูเอกสารประกอบของ YSlow เกี่ยวกับการทำให้ favicon.ico ของคุณเล็กและ Cacheable ได้ที่: http://developer.yahoo.com/performance/rules.html#favicon


+1 มันใช้งานได้จริง ตรวจสอบให้แน่ใจว่าได้ล้างแคชของคุณผ่านผู้คนแล้วฉันคิดว่านี่จะไม่ทำงานจนกว่าฉันจะล้างแคชด้วยตนเอง ไม่แน่ใจว่าทำไมการรีเฟรชอย่างหนักไม่ได้ทำอย่างนั้น
ใช่แบร์รี่

0

นี่ใช้ได้สำหรับฉัน:

# Cache the following content for 1 month (4 Weeks)
<FilesMatch "\.(jpg|jpeg|png|gif|ico)$">
Header set Cache-Control "max-age=2419200, public"
</FilesMatch>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.