Инструмент скорости страницы 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="" />