
新安装的 laravel 项目中自定义路由返回 404,且默认首页修改无效,通常是路由缓存未清除或语法错误导致;执行 `php artisan optimize:clear` 可一键清理缓存并使路由立即生效。
在 Laravel 中,路由定义后无法访问(如 /example 返回 404),甚至修改默认首页 Route::get('/', ...) 也不生效,这并非配置错误,而是 Laravel 8+ 默认启用的路由缓存机制在作祟——开发阶段若未主动清除缓存,框架会持续使用旧的路由快照,导致新增或修改的路由完全不被识别。
✅ 第一步:验证路由是否已注册
在项目根目录运行以下命令,查看当前生效的全部路由:
php artisan route:list
如果输出中没有 /example,说明路由未被加载(可能因语法错误、文件未保存或缓存干扰)。
⚠️ 关键陷阱:代码语法错误
你提供的示例中存在两个致命问题:
- Return 首字母大写 → 应为小写 return(PHP 区分大小写)
- Return ('hello') 缺少分号 → 正确写法为 return 'hello';
修正后的路由应为:
// routes/web.php
Route::get('/example', function () {
return 'hello'; // ✅ 小写 return + 分号
});✅ 第二步:强制清除所有缓存(推荐首选方案)
执行以下命令一次性清除路由、配置、视图等所有缓存:
php artisan optimize:clear
? 该命令等价于依次执行 route:clear, config:clear, view:clear, cache:clear,是 Laravel 8+ 推荐的开发环境缓存清理方式。
✅ 第三步:重启开发服务器(必要步骤)
php artisan serve 启动的服务不会自动重载路由文件。清除缓存后,必须重启服务:
# 先按 Ctrl+C 停止当前服务,再重新启动 php artisan serve
此时访问 http://127.0.0.1:8000/example 即可看到 'hello'。
? 额外提示:
- 确保修改的是 routes/web.php(而非 api.php),因为 Web 路由需匹配 web 中间件组;
- Windows 8.1 用户需确认 PHP 和 Composer 环境变量已正确配置,避免命令执行失败;
- 若仍报错,请检查 APP_KEY 是否已生成(运行 php artisan key:generate);
- 切勿在生产环境随意执行 optimize:clear,应使用 route:cache 提升性能。
通过以上三步(查路由 → 清缓存 → 重启服务),99% 的“路由不显示”问题可立即解决。记住:Laravel 开发中,artisan optimize:clear 是比反复检查语法更高效的排障起点。











