Перенаправить маршруты, не перенаправляя на правильные маршруты - PullRequest
0 голосов
/ 04 сентября 2018

Я создаю интерфейс панели мониторинга в Vue с помощью Vue-router, используя режим истории. Все работает нормально, когда вы переходите к отдельным маршрутам, соответствующим разделам панели управления (например, «/ employee / dashboard / main», «employee / dashboard / orders / all»). Я пытаюсь настроить некоторые перенаправления в файле web.php, используя Route :: redirect ('/ here', '/ there'). Я хочу, чтобы все отправлялось по маршруту моей целевой страницы панели инструментов: / employee / dashboard / main. Некоторые маршруты правильно перенаправляют, а некоторые не зависят от того, находится ли символ '/' в конце URI или нет.

«/ сотрудники» перенаправляет на / dashboard / main (неверно)

'/ employee /' перенаправляет на '/ employee / dashboard / main' (правильно)

'/ employee / dashboard' перенаправляет на '/ employee / dashboard / main' (правильно)

'/ employee / dashboard /' перенаправляет на '/ employee / dashboard / dashboard / main' (неверно)

web.php (фрагмент)

//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');
});

employee-dashboard.js (фрагмент)

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
});

Затем в dashboard.blade.php у меня настроены роутер-линки и вид роутера.

Любая помощь будет принята с благодарностью. Спасибо.

Edit: Еще более странным является то, что когда я закомментирую все записи Route :: redirect в web.php, запускаю php artisan route: clear и перезапускаю php artisan serve, а затем перехожу к / employee, он все равно перенаправляет меня по неверному маршруту ( /dashboard/main).

1 Ответ

0 голосов
/ 13 сентября 2018

Я нашел причину плохого перенаправления. Браузер кеширует перенаправления и по какой-то причине будет использовать его вместо обновленного маршрута перенаправления в файле route / web.php. Чтобы очистить этот кеш в Firefox: перейдите в меню истории и щелкните правой кнопкой мыши на одной из страниц вашего проекта laravel, затем нажмите «Забудьте об этом сайте». Теперь он будет использовать обновленные маршруты перенаправления в вашем файле маршрутов.

Я также изменил перенаправление на: Route :: redirect ('/ employee', '/ employee / login'); так как я использую леса авторизации Laravel и настроил его для перенаправления на главную страницу моей панели мониторинга после входа в систему.

Вот где я нашел это решение: https://superuser.com/questions/467999/clear-301-redirect-cache-in-firefox#661767

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...