Laravel慢速图像响应

时间:2019-01-15 20:12:46

标签: laravel image performance nginx httpresponse

在我的其中一页中,我显示了多张图像。我通过连接到控制器方法的路由获取图像。像这样:

视图中

(inside foreach)
<img width="100" src="viewBook/get/...." >

在控制器方法中:

$img = Image::make('images/test.jpg');
        return $img->response('jpg');

但这是一个很慢的方法。当我显示13张图片时,几乎需要10秒钟。而且,当我通过Chrome DevTools检查时,大多数时间都被视为“空闲”。当然,它们会一一加载。

我如何使其更快?也许是并行响应,还是增加了ngingx带宽?

谢谢。

2 个答案:

答案 0 :(得分:0)

我想您正在使用Intervention Image软件包。但是,没有必要将所有图像放入此包装中。如果这样做,该程序包将处理图像,这将花费大量时间。

如果只想返回图像,则可以使用built-in file response来完成。

return response()->file('images/test.jpg');

这将直接从文件系统加载文件,并且速度更快。

答案 1 :(得分:0)

缩短响应时间非常困难。这取决于各种原因,例如服务器,互联网速度,位置,图像大小等。

在这种情况下,可以使用imagix(https://www.imgix.com/)之类的服务,并且对我们来说效果很好。它比调整其他参数以缩短响应时间便宜。