Изменение размера изображения и кэширование в Laravel

Когда я загрузил изображение (пример: 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/ папка?

0

Решение

«Должен ли я хранить эскизы разных размеров … или генерировать их при посещении страницы?»

Изменение размера изображений может занять относительно много времени во время запроса, поэтому, если вы можете генерировать различные размеры при загрузке изображений (или в фоновом задании, которое срабатывает немедленно), я бы порекомендовал сделать это.

Даже если вы используете функции кэширования Intervention, вы можете получить страницы, которые часто нужно «разогревать», если изображения с измененным размером не кэшировались в последнее время. Это может зависеть от ваших шаблонов трафика и реализации кэша, но если это работает для вас, то это прекрасно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]