Время истечения срока действия изображения

Инструмент скорости страницы Google рекомендует мне устанавливать заголовки «Expires» для изображений и т. Д. Но каков наиболее эффективный способ установки заголовка Expires для изображения?

Теперь перенаправляйте все запросы изображений на imagehandler.php, используя htaccess:

/* 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 MYH:i:s", filemtime($path))." GMT"); header( "Expires: ". date("r",time() + (60*60*24*30))); readfile( $path ); 

Но, конечно, это добавляет дополнительное время загрузки для моих изображений по первому запросу, и мне было интересно, есть ли лучшее решение для этого.

Вы можете добавить его в файл .htaccess .

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

Найдено на AskApache .

Разумеется, если вы хотите, чтобы изображения были изменены, они не будут снова отключены до истечения срока их действия .

Вы можете решить это, сделав что-то вроде этого

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

Я просто использую substr() чтобы сделать его немного короче. Шансы их столкновения минимальны, но могут случиться. Обязательно проверьте его.

Используйте его так

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