突然间,我在 Laravel 8 returns 中的 Auth 中间件内的 /admin 路由找不到 404
Out of a sudden my /admin route inside the Auth Middleware in Laravel 8 returns a 404 not found
我最近开始在 Laravel 中编写自己的管理面板。
每条路由都正常工作,但突然之间 Auth 中间件组中的 /admin 路由停止正常工作。
This are my routes inside web.php
My php artisan route:list
EntryController@index 看起来像这样:
public function index()
{
//
$entries = Entry::all();
return view('admin.index', ['entries' => $entries]);
}
这个问题已经困扰我大约 2 年了,所以也许你们中有人知道解决方案。
我认为您遇到此问题是因为 Laravel 如何确定其路线的优先级。
而且我认为罪魁祸首可能是这条路线:
Route::get('/{link}', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
当您使用 {link}
时,您基本上是在说:“期待 URI 的这一部分中的任何内容”。由于 /{link}
路由位于 /admin
路由之前,并且它们的 URI 都只包含一个段,因此 Laravel 将首先尝试解析 /{link}
。
解决方法:将/{link}
路线移到/admin
路线下方即可。最好将它放在列表的底部 :D
我最近开始在 Laravel 中编写自己的管理面板。 每条路由都正常工作,但突然之间 Auth 中间件组中的 /admin 路由停止正常工作。
This are my routes inside web.php
My php artisan route:list
EntryController@index 看起来像这样:
public function index()
{
//
$entries = Entry::all();
return view('admin.index', ['entries' => $entries]);
}
这个问题已经困扰我大约 2 年了,所以也许你们中有人知道解决方案。
我认为您遇到此问题是因为 Laravel 如何确定其路线的优先级。
而且我认为罪魁祸首可能是这条路线:
Route::get('/{link}', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
当您使用 {link}
时,您基本上是在说:“期待 URI 的这一部分中的任何内容”。由于 /{link}
路由位于 /admin
路由之前,并且它们的 URI 都只包含一个段,因此 Laravel 将首先尝试解析 /{link}
。
解决方法:将/{link}
路线移到/admin
路线下方即可。最好将它放在列表的底部 :D