我正在使用 Laravel 5.1 和 Intervention Imagecache
我正在写一家商店,产品页面有很多图片。我正在使用基于 URL 的操作(例如,访问http://store.app/image/255x135/some-image.jpg会生成一个 255x135 版本的 some-image.jpg)来调整图像大小。然而,当图像被加载时,Laravel 会生成一个检查用户的查询(select * from users
where users
. id
= ? limit 1)
问题是每次访问 Laravel 中的任何路由时都会生成这个查询,包括 Intervention Imagecache 路由,并且当页面使用 Intervention 加载 20-30 张图片时,会针对每个图片执行上述用户检查 SQL 查询(在此20-30 次)。
当我试图找出问题时,我注意到这个查询是为 Laravel 中的每一个路由生成的,即使是一个简单的测试路由,换句话说,问题不在于 Intervention Imagecache 本身。
我目前正在尝试禁用干预路线上的用户检查查询,但我还没有成功。
我的两个问题是:
- 可以为特定路由禁用用户检查查询吗?
- 有没有办法解决这个按图像查询的问题(除了调整图像大小并将它们保存到文件系统 - 换句话说,放弃基于 URL 的操作)?
编辑
起初我正在使用 DB::listen() 进行调试,它显示正在执行多个查询(每个被访问的干预路由 1 个查询)
我刚刚安装并检查了 Clockwork 会显示的内容,它确实只显示了 1 个查询(不是多个查询,所以 Clockwork 说一切正常)。
我不确定这些相互矛盾的结果中哪一个是正确的,所以我直接从 MySQL 本身记录了查询 - 不幸的是,它显示执行了许多(与 DB::listen 记录的数量相同)查询(Clockwork 只显示了 1 个,但实际上有几个是执行)。
问题仍然存在,任何帮助将不胜感激。