无法访问Laravel API路由问题排查求助
排查Laravel API路由404问题的几个关键点
别忘API路由的默认前缀:Laravel的
routes/api.php里定义的路由,默认都会自动加上/api前缀(配置在app/Providers/RouteServiceProvider.php的mapApiRoutes方法中)。你用Postman访问时,应该请求http://你的本地域名/api/login和http://你的本地域名/api/user,而不是直接/login或/user——这是新手最容易踩的坑。核对请求方法是否匹配:检查你在
routes/api.php里定义路由时用的HTTP方法,比如如果是Route::post('/login', [...]),那Postman里必须用POST请求;如果路由是GET但你用POST访问,也会返回404。确认控制器引用正确:检查路由里指定的控制器类名、命名空间是否准确,比如
LoginController是不是在App\Http\Controllers目录下,有没有拼写错误,或者控制器文件是否真的存在。再检查Sanctum的安装配置:虽然
php artisan install:api会自动配置,但可以手动确认:- 查看
app/Http/Kernel.php的api中间件组,是否包含\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class; - 确认
config/sanctum.php文件存在(如果没有,执行php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"生成)。
- 查看
强制清除路由缓存:虽然你执行了
optimize:clear,但可以单独再跑一次php artisan route:clear,确保路由缓存完全清除——有时候缓存残留会导致路由不生效。
内容的提问来源于stack exchange,提问作者SpamBug
相关产品推荐
相关产品推荐

