关闭调试、缓存配置与路由,启用预加载和cdn是laravel提速最见效的几件事;需在部署阶段设app_debug=false,运行config:cache、route:cache、view:clear,并用with()避免n+1查询,配合缓存、opcache、gzip及cdn优化。

直接关掉调试、缓存配置和路由、用好预加载与CDN,是Laravel提速最见效的几件事。不需要大改代码,重点在部署阶段做对关键动作。
关闭调试并启用生产级缓存
开发时开启的 APP_DEBUG=true 会记录大量日志、显示详细错误堆栈,严重拖慢响应。上线前务必在 .env 中设为 false。紧接着运行:
- php artisan config:cache —— 把所有配置合并成单个PHP文件,跳过多次读取和解析
- php artisan route:cache —— 将路由注册逻辑固化为静态数组,避免每次请求都遍历路由文件
- php artisan view:clear —— 清除旧视图缓存,防止模板变更未生效
优化数据库查询与关联加载
N+1 查询是最常见的性能杀手。比如循环中调用模型关系,100 条数据可能触发 101 次 SQL。正确做法是使用 with() 预加载:
$posts = Post::with('author', 'category')->latest()->take(20)->get();- 复杂场景可配合 whereHas() 或 load() 按需补充加载
- 高频列表页(如导航菜单、站点配置)建议用 Cache::remember() 缓存结果,设置合理 TTL
精简资源与启用底层加速
前端资源体积和 PHP 执行效率直接影响首屏时间:
- 用 Laravel Mix 压缩 CSS/JS,并启用版本哈希(
mix.version()),避免缓存失效问题 - 服务器上开启 OPcache(PHP 8.3+ 默认启用,确认
opcache.enable=1) - Nginx 配置开启 Gzip 压缩,减少传输体积
- 静态资源(图片、字体、CSS)通过 CDN 分发,降低用户访问延迟
预热缓存与异步加载策略
首访慢?大概率是缓存没“热起来”。可主动填充常用数据:
- 写一个 Artisan 命令(如
php artisan cache:warmup),部署后立即执行 - 在 AppServiceProvider@boot 中轻量检查并填充关键缓存项(如站点设置、分类列表)
- 对耗时操作(如报表生成、多步骤验证),用 AJAX 异步加载,先返回骨架页+加载动画,再动态渲染内容











