Я пытаюсь реализовать функцию адаптивных изображений в медиа-библиотеке Laravel Spatie, но по какой-то причине изображения не генерируются. Я пробовал зарегистрировать медиаконвертацию и применить там withResponsiveImages, а также непосредственно после $model->addMedia() и даже перейти на другие версии медиа-библиотеки, но ни одно из этих решений не решило мою проблему.
Как я загружаю изображение
$request->validate([
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$image = Image::create([
'name' => $request->image->getClientOriginalName()
])
->addMedia($request->image)
->withResponsiveImages()
->toMediaCollection();
Как получить модель для отображения адаптивных изображений
$image = Image::first();
return view('welcome', compact('productsForMenu', 'productsForSlider','image'));
И как я показываю изображение
{{$image->getFirstMedia()}}
Изображение загружается в папку /public/media/id/image.jpg, но адаптивные изображения не создаются. Когда я показываю его, атрибут srcset не применяется. Что я могу делать неправильно? Это функция медиа-библиотеки-про?
Если это не сработает, какие альтернативы мне нужно создать для создания адаптивных изображений?
У меня были похожие проблемы, и чтобы их исправить, сначала убедитесь, что у вас установлены расширения php-exif, php-gd.
Затем, во-вторых, медиа-библиотека ставит в очередь все преобразования, поэтому вы должны либо запустить php artisan queue:work
, либо установить для QUEUE_CONVERSIONS_BY_DEFAULT значение false в вашей среде.
Тем временем мне удается это решить, я пропустил часть документации, где упоминались очереди, после того, как для QUEUE_CONVERSIONS_BY_DEFAULT установлено значение false, все работает правильно! Спасибо за ответ!