Görüntü süresi sona

2 Cevap php

Google Page Speed ​​aracı 'Bitiş' görüntüler vs başlıklarını ayarlamak için bana önerir Ama bir görüntü için Expires başlığını ayarlamak için en etkili yolu nedir?

Şimdi htaccess kullanarak bir imagehandler.php tüm resim isteklerini yönlendirmek:

/*
HTTP/1.1 404 Not Found, HTTP/1.1 400 Bad Request and content type detection stuff
...
*/

header( "Content-Type: " . $content_type );
header( "Cache-Control: public" );
header( "Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($path))." GMT");
header( "Expires: ". date("r",time() + (60*60*24*30)));
readfile( $path );

Ama tabii bu ilk istek benim görüntüler için ekstra zaman yükleme ekler ve bunun için daha iyi bir çözüm olup olmadığını merak ediyordum.

2 Cevap

Sen .htaccess dosyasına ekleyebilirsiniz.

<FilesMatch "\.(ico|jpg|jpeg|png|gif)$">
Header set Cache-Control "max-age=290304000, public"
</FilesMatch>

Found on AskApache.

Eğer görüntüleri değişti istiyorsanız Tabii ki, onlar kadar tekrar indirme işlemi olmayacak onlar expire.

Böyle bir şey yaparak çözebilir

function getImage($path) {
    // may need to add a DOCROOT constant here before filemtime() argument
    return $path . '?m=' . substr(filemtime($path) -5);

}

Ben sadece biraz daha kısa yapmak için substr() kullanın. Çarpışan Bunlardan şansı az, ancak may olur. Bunu test etmek için emin olun.

Bu gibi kullanmak

<img src="<?php echo getImage('path/to/your/image.jpg'); ?>" alt="" />