Вмешательство Кэш изображений с помощью Laravel: работает один раз, затем «Изображение не может быть отображено, поскольку оно содержит ошибки».

Что касается названия вопроса, я использую пакет Intervention с Laravel. У меня есть следующий код в моем файле маршрутов:

Route::get('resize-image/{pathkey}/{filename}/{w?}/{h?}', function($pathkey, $filename, $w=100, $h=100){

$cacheimage = Image::cache(function($image) use($pathkey, $filename, $w, $h){

switch($pathkey){
case 'tour-images':
$filepath = 'upload/tour-images/' . $filename;
break;
}
return $image->make($filepath)->resize($w,$h);

},10,true); // cache for 10 minutes

return Response::make($cacheimage, 200, array('Content-Type' => 'image/jpeg'));
});

Когда я называю изображение, используя что-то вроде: /resize-image/tour-images/139326085726.jpg/1100/400 это работает хорошо, тогда, как только я перезагружаю страницу, я получаю ошибку:

Изображение xxxx не может быть отображено, потому что оно содержит ошибки

Если я изменяю размеры (поэтому заставляю его снова изменять размер изображения), это работает, тогда .. та же проблема. Когда я перезагружаю страницу, на этот раз загружается кэшированное изображение … но оно не работает. Что происходит?

1

Решение

Хорошо, теперь это работает. Если я удаляю «true», то это работает, т.е. изменить эту строку кода:

},10,true); // cache for 10 minutes

чтобы:

},10); // cache for 10 minutes

Хотя не уверен, почему … Я не могу найти информацию, которая говорит мне, что означает «истина» (я скопировал этот код из видео с небольшим количеством объяснений). Если кто-нибудь знает, что это значит, пожалуйста, оставьте комментарий.

2

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

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

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