【发布时间】:2015-06-01 23:53:13
【问题描述】:
我已经通过 php artisan route:cache 缓存了我的 Laravel 5 路由。
这成功了很长一段时间,当我更改路线时,可以再次缓存它们,一切都会正常工作。
问题是我已经将一些路由移动到另一个路由组,并且似乎由于某种原因它们不会被缓存。
我尝试再次缓存它们,但没有成功。我也试过php artisan cache:clear,但还是不行。
Routes.php 更改:
Route::group(['prefix' => 'api', 'middleware' => 'auth'], function () {
Route::get('invites', 'InvitationController@get');
Route::get('invites/check', 'InvitationController@check');
});
改为:
Route::group(['prefix' => 'api'], function () {
Route::post('auth', 'Auth\AuthController@authenticate');
Route::get('invites', 'InvitationController@get');
Route::get('invites/check', 'InvitationController@check');
});
如您所见,我已将那些 invitation 路由移至没有 Authenticate 中间件的 Route 组。当我再次缓存路由时,即使将它们移出组,它仍然会执行Auth 中间件..
【问题讨论】:
-
您确定是缓存问题吗?另外,请向我们展示您的路线代码
-
是的,请参阅路线编辑。我在身份验证中间件中尝试了 dd('test') ,即使它不再在 Route 组中,路由也是使用中间件的。
-
身份验证中间件是否也可能在其他地方注册?可能在控制器中?要检查这是否真的是一个缓存问题,请更改您的测试路由的 URL。点赞
Route::get('invites2', ...,再次缓存,尝试访问路由。如果你得到一个 404 这不是缓存问题。 -
在此之前有路线吗?
-
我已将
invites更改为invites2并在缓存后显示NotFoundHttpException... 真的很奇怪。中间件被注册为别名,并且没有在控制器的其他地方使用..
标签: php laravel laravel-5 laravel-routing