新入门 laravel
开发者常因缓存、语法错误或服务未重启导致自定义路由 404 或修改不生效,本文详解排查步骤与正确操作流程。
当你在 routes/web.php 中添加了如下路由:
Route::get('/example', function () {
return 'hello';
});却访问 http://localhost:8000/example 时返回 404,或修改默认首页路由(如 Route::get('/', ...))后页面无变化,这通常不是代码逻辑错误,而是开发环境的典型缓存与加载问题。
运行以下命令,查看当前已注册的所有 Web 路由:
php artisan route:list
? 检查点:你代码中使用了 Return(首字母大写),这是 PHP 语法错误!PHP 的 return 是小写关键字,大写会导致整个路由文件解析失败,Laravel 将跳过该文件且不报明显错误(仅静默忽略)。请立即修正为:
Route::get('/example', function () {
return 'hello'; // ✅ 小写 return
});Laravel 8+ 默认启用路由缓存(尤其在 APP_ENV=production 时),但即使开发环境(APP_ENV=local),某些配置或旧缓存也可能干扰。执行以下命令彻底清理:
php artisan optimize:clear
该命令等价于依次执行:
? 提示:php artisan route:clear 是专门清除已编译路由缓存的命令,对 routes/web.php 修改后不生效问题最有效。
php artisan serve 不支持热重载——修改 PHP 文件后必须手动重启服务:
php artisan serve
此时访问 http://localhost:8000/example 即可看到 'hello'。
遵循以上步骤,99% 的“路由不显示”问题将迎刃而解。 Laravel 的约定优于配置原则要求开发者严格遵守语法与生命周期规范——看似琐碎,实则是高效协作的基础。