You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel后端API路由Postman测试返回404 Not Found问题求助

解决Laravel路由返回404 Not Found问题

1. 确认API路由前缀与请求URL匹配

Laravel的api.php路由默认自带/api前缀,所有API请求必须包含该前缀。例如:

  • GET请求URL应为 http://<你的Docker主机IP>:<端口>/api/categories
  • POST请求URL应为 http://<你的Docker主机IP>:<端口>/api/categories
    若直接请求/categories,必然返回404。

2. 验证路由是否正确注册

进入Laravel所在的Docker容器,执行命令查看已注册路由列表:

php artisan route:list

如果列表中没有Category相关路由,检查api.php是否存在语法错误,或RouteServiceProvider是否修改了API路由的前缀/命名空间。正确的路由注册示例:

use App\Http\Controllers\CategoryController;

// 推荐使用API资源路由
Route::apiResource('categories', CategoryController::class);

// 或手动定义单个路由
Route::get('/categories', [CategoryController::class, 'index']);
Route::post('/categories', [CategoryController::class, 'store']);

3. 清除路由缓存

若之前执行过php artisan route:cache,修改路由后需清除缓存才能生效:

php artisan route:clear

需在Laravel容器内部执行该命令,或通过Docker Compose的exec命令运行。

4. 检查Web服务器重写配置

如果Laravel容器使用Nginx/Apache作为Web服务器,确保配置正确处理URL重写:

  • Nginx:配置文件需包含以下规则,将所有请求转发到public/index.php:
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
  • Apache:启用mod_rewrite模块,确保public/.htaccess文件存在且未被修改。

5. 排查数据库连接与日志

虽然Migration和Model不直接影响路由,但Controller中若因数据库连接失败抛出异常,错误处理不当可能返回404。检查.env中的数据库配置,确保指向Docker容器内的数据库服务:

DB_CONNECTION=mysql
DB_HOST=mysql  # 对应Docker Compose中数据库服务的名称
DB_PORT=3306
DB_DATABASE=你的数据库名
DB_USERNAME=用户名
DB_PASSWORD=密码

同时查看Laravel日志文件storage/logs/laravel.log,排查是否有隐藏的报错信息。

6. 确认Postman请求配置

  • 请求方法必须与路由定义一致(GET对应index,POST对应store)
  • POST请求需设置Content-Type为application/json,并在请求体中传入符合接口要求的参数

内容的提问来源于stack exchange,提问作者Mohamed Humaam Athif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 13:12:32