ошибка с URL-адресом с помощью laravel и response-router

Я сталкиваюсь с проблемой пути с реагирующим маршрутизатором и 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>

0

Решение

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

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

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

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

0

Другие решения

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

0

По вопросам рекламы [email protected]