Что касается названия вопроса, я использую пакет 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 не может быть отображено, потому что оно содержит ошибки
Если я изменяю размеры (поэтому заставляю его снова изменять размер изображения), это работает, тогда .. та же проблема. Когда я перезагружаю страницу, на этот раз загружается кэшированное изображение … но оно не работает. Что происходит?
Хорошо, теперь это работает. Если я удаляю «true», то это работает, т.е. изменить эту строку кода:
},10,true); // cache for 10 minutes
чтобы:
},10); // cache for 10 minutes
Хотя не уверен, почему … Я не могу найти информацию, которая говорит мне, что означает «истина» (я скопировал этот код из видео с небольшим количеством объяснений). Если кто-нибудь знает, что это значит, пожалуйста, оставьте комментарий.
Других решений пока нет …