Laravel 5 重定向路由未重定向到正确的路由
我正在使用Vue路由器使用历史模式在Vue中构建仪表板界面。当您导航到仪表板的各个部分(例如,“/employees/dashboard/main”“,”/employees/dashboard/orders/all')时,一切正常。我正在尝试使用Route::redirect(“/here”、“那里”)在web.php文件中设置一些重定向。我希望所有内容都转到我的仪表板登录页路径:'/employees/dashboard/main'。有些路由正确重定向,有些路由不重定向,这取决于“/”是否位于URI的末尾 “/employees”重定向到“/dashboard/main”(不正确) “/employees/”重定向到“/employees/dashboard/main”(正确) “/employees/dashboard”重定向到“/employees/dashboard/main”(正确) “/employees/dashboard/”重定向到“/employees/dashboard/dashboard/main”(不正确) web.php(片段) employee dashboard.js(片段) 然后在dashboard.blade.php中设置路由器链接和路由器视图 任何帮助都将不胜感激。谢谢 编辑:Laravel 5 重定向路由未重定向到正确的路由,laravel-5,Laravel 5,我正在使用Vue路由器使用历史模式在Vue中构建仪表板界面。当您导航到仪表板的各个部分(例如,“/employees/dashboard/main”“,”/employees/dashboard/orders/all')时,一切正常。我正在尝试使用Route::redirect(“/here”、“那里”)在web.php文件中设置一些重定向。我希望所有内容都转到我的仪表板登录页路径:'/employees/dashboard/main'。有些路由正确重定向,有些路由不重定向,这取决于“/”是否位
更奇怪的是,当我注释掉web.php中的所有Route::redirect条目,运行php artisan Route:clear,重新启动php artisan Service,然后转到/employees,它仍然将我重定向到错误的路径(/dashboard/main)。我找到了错误重定向的原因。浏览器缓存重定向,出于某种原因,将在routes/web.php文件中使用该重定向,而不是更新的重定向路由。要在Firefox中清除此缓存,请进入“历史记录”菜单,右键单击laravel项目中的一个页面,然后单击“忘记此站点”。它现在将使用路由文件中更新的重定向路由 我还将重定向更改为:Route::redirect('/employees','/employees/login');因为我正在使用Laravel的Auth脚手架,并将其设置为在登录后重定向到仪表板的主页面 我在这里找到了这个解决方案:
//Employee Routes
//below route was also giving the same result but I left here to show that
//I've also tried it.
//Route::redirect('/employees', '/employees/dashboard/main');
Route::group(['prefix' => 'employees'], function() {
Route::redirect('', 'dashboard/main', 308);
Route::redirect('/', 'dashboard/main', 308);
Route::redirect('/dashboard', 'dashboard/main', 308);
//catch-all route so vue router routes don't throw 404
Route::get('/dashboard/{any}', 'EmployeeController@showDashboard')
->where('any', '.*')
->name('employee.dashboard');
});
const router = new VueRouter({
mode: 'history',
linkActiveClass: 'active',
routes: [
{path: '/employees/dashboard/main', component: Main},
{
path: '/employees/dashboard/orders',
component: Orders,
redirect: '/employees/dashboard/orders/active',
children: [
{path: 'all', component: FilteredOrders},
{path: 'active', component: FilteredOrders},
{path: 'completed', component: FilteredOrders}
]
}
]
});
const dashboard = new Vue({
el: '#dashboard',
router
});