Когда я загрузил изображение (пример: user/1/user_profile_img.jpg
), Я хочу, чтобы интервенционное изображение создавало несколько размеров миниатюр ( 100x100
, 200x200
, 400x400
и т. д.), эти размеры будут использоваться на разных страницах для улучшения оценки скорости.
Должен ли я хранить разные размеры миниатюр ( 100x100
, 200x200
, 400x400
и т. д.) /cache/
папка? лайк ‘/cache/user/1/user_profile_img-100x100.jpg
«?
или я генерирую их при посещении страницы с маршрутом изменения размера кэша изображений вмешательства, например:
{{ route('photos/item/100x100/userprofile/user_profile_img.jpg') }}
в шаблоне blade.php?
Route::get('photos/item/{size}/{reference}/{photo}', 'ImgController@showImg');
Я видел, что есть ‘lifetime (optional)
параметр в функции Intervention Image Cache:
$img = Image::cache(function($image) {
$image->make('public/foo.jpg')->resize(300, 200)->greyscale();
}, 10, true);
Время жизни в минутах обратного вызова изображения в кеше.
Это для установки времени окончания кеша изображения?
Будет ли изображение автоматически удаляться из /cache/
папка?
«Должен ли я хранить эскизы разных размеров … или генерировать их при посещении страницы?»
Изменение размера изображений может занять относительно много времени во время запроса, поэтому, если вы можете генерировать различные размеры при загрузке изображений (или в фоновом задании, которое срабатывает немедленно), я бы порекомендовал сделать это.
Даже если вы используете функции кэширования Intervention, вы можете получить страницы, которые часто нужно «разогревать», если изображения с измененным размером не кэшировались в последнее время. Это может зависеть от ваших шаблонов трафика и реализации кэша, но если это работает для вас, то это прекрасно.
Других решений пока нет …