在我的一个页面中,我显示多个图像。我通过路径获取图像,该路径连接到控制器方法。像这样:
在视图中:
(inside foreach)
<img width="100" src="viewBook/get/...." >
在控制器方法中:
$img = Image::make('images/test.jpg');
return $img->response('jpg');
但这是一种缓慢的方法。当我显示让我们说13张图像时,它几乎需要10秒钟。当我通过Chrome DevTools进行检查时,大部分时间都被视为“空闲”。当然,他们一个接一个地装。
我怎样才能让它更快?也许并行响应,或增加nginx带宽?
提前致谢。
我想你正在使用Intervention Image软件包。但是,没有必要将所有图像都放在此包中。如果这样做,包将处理图像,这需要花费很多时间。
如果您只想返回图像,可以使用built-in file response。
return response()->file('images/test.jpg');
这将直接从文件系统加载文件,速度会快得多。
改善响应时间是非常困难的。这取决于各种原因,如服务器,互联网速度,位置,图像大小等。
对于这种情况,可以使用像imagix(https://www.imgix.com/)这样的服务,它对我们很有用。它比调整其他参数更便宜,以缩短响应时间。