Eri*_*ric 4 php image-caching laravel-4 laravel-routing
我正在使用Intervention/imagecache来缓存我的图像.但是,缓存图像的加载速度比源图像文件慢.几乎额外的60-70毫秒的时间latancy(测试铬检查元件网络)
这是我在Route.php上加载图像的代码
Route::get('images/cars/{src}', function ($src){
$cacheimage = Image::cache(function($image) use($src){
return $image->make("images/products/".$src);
},1440);
return Response::make($cacheimage,200, array('Content-Type'=>'image/jpg'));
});
Run Code Online (Sandbox Code Playgroud)
在刀片中
<img src="{{ URL::asset('/images/cars/theimage.jpg' }}" alt="">
Run Code Online (Sandbox Code Playgroud)
存储图像缓存的任何想法或更好的方法?
我从未使用过laravel,但这是一个普遍的问题.
如果让web服务器处理将图像传送到客户端,则不会启动php解释器.
如果你通过PHP提供一些东西(我假设,因为你写了一些关于缓存的图像),你需要PHP解释器.然后你需要执行脚本,并且它的所有逻辑(使用脚本语言总是较慢,然后是本机的).
最好的办法是,将图像保存在文件系统上,然后链接到它,而不是PHP脚本.
这意味着例如:
在应用程序的某处,您有一个点,即创建原始图像的位置.现在想一想,你需要什么版本的它.调整大小,裁剪,编辑它你想要的.在文件系统中保存所需的每个版本.所以你必须,而不是image.jpg一个image-200x200-cropped-with-branding.jpg.此时,性能不应该那么重要(图像将被查看数千次,但只创建一次).
你想拥有
<img src="/path/to/image-200x200-cropped-with-branding.jpg">;
Run Code Online (Sandbox Code Playgroud)
代替
<img src="/image.php?param1=1¶m2=2">;
Run Code Online (Sandbox Code Playgroud)