【发布时间】:2021-12-06 18:04:12
【问题描述】:
我在服务器上部署了Laravel 中的应用程序。当我尝试在Postman 中调用POST 时:
http://api.mydomain.com/api/auth/signin
我收到错误404 not found。
在文件RouteServiceProvider我评论了网页部分:
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
/*
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
*/
});
}
当我有未注释的网络部分并从 Postman 发送 GET但没有任何后缀时,只有 domain: api.mydomain.com/ 它有效。
现在我评论了 web 并且只有 API 部分,对 API 方法的任何请求都不起作用。
我的控制器:
class JwtAuthController extends Controller
{
//
public function __construct() {
$this->middleware('auth:api', ['except' => ['login', 'register']]);
}
/**
* Get a JWT via given credentials.
*/
public function login(Request $request){
...
}
在api.php 文件中:
Route::group([
'middleware' => 'api',
'prefix' => 'auth'
], function ($router) {
Route::post('/signin', [JwtAuthController::class, 'login']);
}
php artisan route:list 的结果:
| App\Http\Middleware\Authenticate:api |
|
| POST
| api/auth/signin
| generated::1YOyMAVvTTnBZtym
| App\Http\Controllers\JwtAuthController@login
| api
在我的本地机器上,它可以工作,但是当我将它部署到服务器上时,它就不能工作了。
【问题讨论】: