Laravel 路由在本地完美运行,但在远程不完美。 (野狗Api)
Laravel route works perfectly locally but not on remote. (Dingo Api)
我正在为一个项目使用 dingo/api,我的所有路线都可以使用,但 1 除外。
routes.php
$api = app('api.router');
$api->version('v1',['prefix' => 'api'], function ($api) {
$api->post('users', "App\Http\Controllers\Auth\UsersController@store");
...
});
存储方法:
/**
*
* @param \App\Http\Requests\Auth\StoreUserRequest $request
* @return \Illuminate\Http\Response
*/
public function store(StoreUserRequest $request)
{
if( ! $this->isAdminRequest() )
{
return $this->dispatch(new RegisterUserCommand($request));
}
}
这条路线抛出 405 Method Not Allowed Exception
。
php artisan api:routes
表明它已在本地和服务器上注册。
我正在使用 POSTMAN 来测试我的 api 并拥有所有必填字段。
作为回应,我得到 Allow : POST.
注意:
- 还有其他 post 条路线可以完美运行。
- 还有其他
完美运行的 UsersController 路由
- 我已经尝试删除所有其他路由,但仍然无法正常工作。
感谢任何帮助。谢谢
更新:
好吧,我犯了一个非常愚蠢的错误。我正在点击 'domain/api/users/'。删除尾随 '/' 有效。
但问题是,本地 '/' 有效,而不是在服务器上。
所以保留这个问题可能会得到一些解释。
很好的问题,自从 运行 我自己就开始研究这个问题。您的更新应该在答案中,所以如果您这样做,我可能会删除我的。对我来说,问题是 action
中的尾部斜杠,例如/some/action/
而不是 /some/action
,路由希望它采用后一种形式。
我原以为 Laravel 会将这个可选的尾部斜线作为一项功能来处理,但事实并非如此。
我正在为一个项目使用 dingo/api,我的所有路线都可以使用,但 1 除外。
routes.php
$api = app('api.router');
$api->version('v1',['prefix' => 'api'], function ($api) {
$api->post('users', "App\Http\Controllers\Auth\UsersController@store");
...
});
存储方法:
/**
*
* @param \App\Http\Requests\Auth\StoreUserRequest $request
* @return \Illuminate\Http\Response
*/
public function store(StoreUserRequest $request)
{
if( ! $this->isAdminRequest() )
{
return $this->dispatch(new RegisterUserCommand($request));
}
}
这条路线抛出 405 Method Not Allowed Exception
。
php artisan api:routes
表明它已在本地和服务器上注册。
我正在使用 POSTMAN 来测试我的 api 并拥有所有必填字段。
作为回应,我得到 Allow : POST.
注意:
- 还有其他 post 条路线可以完美运行。
- 还有其他 完美运行的 UsersController 路由
- 我已经尝试删除所有其他路由,但仍然无法正常工作。
感谢任何帮助。谢谢
更新:
好吧,我犯了一个非常愚蠢的错误。我正在点击 'domain/api/users/'。删除尾随 '/' 有效。 但问题是,本地 '/' 有效,而不是在服务器上。 所以保留这个问题可能会得到一些解释。
很好的问题,自从 运行 我自己就开始研究这个问题。您的更新应该在答案中,所以如果您这样做,我可能会删除我的。对我来说,问题是 action
中的尾部斜杠,例如/some/action/
而不是 /some/action
,路由希望它采用后一种形式。
我原以为 Laravel 会将这个可选的尾部斜线作为一项功能来处理,但事实并非如此。