ошибка с URL-адресом с помощью laravel и response-router - PullRequest
0 голосов
/ 29 ноября 2018

Я столкнулся с проблемой пути с реагирующим маршрутизатором и laravel.Я хочу пойти по этому пути: / пользователи / создать.Он прекрасно работает с реагирующим маршрутизатором, но когда я нахожусь на этом пути и обновляю страницу, я получаю 404 и перенаправляется из-за промежуточного программного обеспечения.Почему это происходит?

** Примечание: Когда я использую везде, где пользователи - создайте вместо пользователей / создайте, это работает, но это не то, что я хочу.

Код:

AppRouter.js

 <Router history={history}>
                <div className="wrapper">
                    <Sidebar/>
                    <div className="main-panel">
                        <Navbar/>
                        <Switch>
                            <Route exact path='/dashboard' component={Dashboard} />
                            <Route exact path='/categories' component={Category} />
                            <Route exact path='/users/create' component={UserCreate} />
                            <Route exact path='/users' component={User} />
                            <Route component={NotFound}/>
                        </Switch>
                        <Footer/>
                    </div>
                </div>
            </Router>

Routes.php

Route::view('/dashboard', 'main')->middleware('auth', 'preventHistory');
Route::view('/categories', 'main')->middleware('auth', 'preventHistory');
Route::view('/users/create', 'main')->middleware('auth', 'preventHistory');
Route::view('/users', 'main')->middleware('auth', 'preventHistory');

Sidebar.js

                                    <li className="nav-item ">
                                        <NavLink exact to='/users' activeClassName='active'>
                                            <span className="sidebar-normal">y</span>
                                        </NavLink>
                                    </li>
                                    <li className="nav-item ">
                                        <NavLink exact to='/users/create' activeClassName='active'>
                                            <span className="sidebar-normal">x</span>
                                        </NavLink>
                                    </li>

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Я понял проблему к счастью.Когда я нажимаю обновить или когда я вхожу в систему, я делаю запрос http через axios на этой конечной точке, например, axios ('api / auth / check').Проблема заключалась в том, что axios каждый раз перехватывал URL и попадал на относительный путь (api / ..), поэтому он попадал не в ту конечную точку.Я исправил это с помощью одного / в начале каждого запроса axios.

0 голосов
/ 29 ноября 2018

Когда вы нажимаете обновление, путь URL-адреса напрямую переходит к Laravel, который вообще не знает об этом пути.Этот путь известен только React.

Чтобы исправить эту проблему, все, что вам нужно сделать, это сказать Laravel, что /users/create - это путь React, и, следовательно, при обнаружении такого пути Laravel должен переслать запрос на индексирование..html.

Это общая проблема во всех средах.Поскольку я не являюсь PHP-специалистом, я не могу дать вам пример кода.

Однако вы можете обратиться к этому ответу, который относится к Spring, Java и Angular: https://stackoverflow.com/a/47926065/1235935

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