未找到 Laravel API 路由

Posted

技术标签:

【中文标题】未找到 Laravel API 路由【英文标题】:Laravel API Route Not Found 【发布时间】:2018-12-27 22:32:52 【问题描述】:

我正在尝试测试 API 路由,但我总是得到 404 Not Found

我正在使用这个命令:

curl http://localhost:8000/api/veip

这是我的routes/api.php

<?php

use Illuminate\Http\Request;

Route::get('/veip', function () 
    return 'Hello World';
);

这是我的php artisan route:list 输出:

+--------+----------+----------+------+---------+------------+
| Domain | Method   | URI      | Name | Action  | Middleware |
+--------+----------+----------+------+---------+------------+
|        | GET|HEAD | /        |      | Closure | web        |
|        | GET|HEAD | api/veip |      | Closure | api        |
+--------+----------+----------+------+---------+------------+

所以路线确实存在

我不知道这里发生了什么......

【问题讨论】:

curl 命令中的错字ipve 侯赛因,感谢您的评论,这是问题中的错字。问题还在发生 php artisan route:clear如果你改变了路线然后再试一次 您能否确认.htaccess 已启用并且正在工作? 你的项目根文件夹有正确的权限吗?试试sudo chmod 755 -R project_root_folder 【参考方案1】:

尝试 php artisan route:clear 可能对你有用

【讨论】:

【参考方案2】:

运行sudo a2enmod rewrite 启用.htaccess 文件的mod_rewrite,然后运行sudo service apache2 restart

【讨论】:

【参考方案3】:

检查路由中间件https://laravel.com/docs/8.x/routing#route-groups?

Route::middleware('api')->group(function () 

    Route::get('testroute', [TestController::class, 'index']); 

网址:

http://127.0.0.1:8000/api/testroute

【讨论】:

【参考方案4】:

你需要调用 http://my_localhost_link/api/someroute。

【讨论】:

【参考方案5】:

我之前也遇到过同样的问题,结果我只需要运行 php artisan optimize 并且我的路线就在那里

【讨论】:

【参考方案6】:

您需要使用 php artisan api:routes(artisan 命令)而不是 php artisan route:list 来搜索 Api/routes。

【讨论】:

你能进一步解释一下吗?这些命令是如何解决 404 错误的? 我在尝试获取 route:list 时遇到了相同的错误代码,但我意识到我正在输入另一个命令来获取 Routes。这花了我很多时间。我没有任何错误。 请进一步解释,并将所有解释添加到答案中,而不是评论部分。请记住,OP 应该能够使用您的答案解决问题 我收到There are no commands defined in the "api" namespace.

以上是关于未找到 Laravel API 路由的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Laravel API 路由

404 - 未找到存在 Laravel 8 的 Passport Api 路由

Laravel RegisterController 路由未找到

为啥 Api Route 在 laravel 应用程序中不起作用,显示错误(未找到 404 错误)?

未找到 Laravel 路由,默认根路由除外

Laravel 5.6 '/' 找到路由但未找到其他路由 AWS EC2