Laravel api.php路由返回404,web.php路由正常求助
解决Laravel API路由404问题
检查API路由前缀配置
打开app/Providers/RouteServiceProvider.php,确认mapApiRoutes方法里的前缀设置是否正确,默认配置如下:protected function mapApiRoutes() { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); }重点确认
prefix('api')是否存在,未被修改为其他值。验证路由注册状态
执行命令php artisan route:list,查看输出列表中是否存在GET|HEAD api/stocks这条路由。如果没有,说明api.php中的路由未被正确加载,需检查RouteServiceProvider内的路由映射逻辑。确认控制器命名空间
确保api.php顶部已正确导入控制器命名空间:use App\Http\Controllers\StockController;或者在路由中使用完整命名空间路径:
Route::get('/stocks',[\App\Http\Controllers\StockController::class,'index']);检查Web服务器配置
- 若使用Apache,确认
public/.htaccess中的重写规则完整,默认Laravel规则可正确处理/api前缀请求; - 若使用Nginx,确保配置文件中的
try_files规则正确:location / { try_files $uri $uri/ /index.php?$query_string; }
- 若使用Apache,确认
彻底清理缓存
依次执行以下命令,确保所有缓存被清除:php artisan route:clear php artisan optimize:clear开发环境建议避免使用
route:cache,因为路由缓存会覆盖实时的路由配置。
内容的提问来源于stack exchange,提问作者Taiwan No.1
相关产品推荐
相关产品推荐

