Я пытаюсь создать реагирующую маршрутизацию в своем приложении laravel. Но это не работает. Я безуспешно следил за несколькими уроками.
Сначала я добавил этот маршрут в route.php:
Route::get('/', function () {
return view('index', []); });
Затем в index.blade.php:
<div id = "app"></div>
<script src = "{{asset('js/app.js')}}" ></script>
Затем в моем app.js я добавляю маршруты:
<BrowserRouter>
<Switch>
<Route path = "currency" component = {Currency}/>
<Route path = "/" component = {Index}/>
</Switch> </BrowserRouter>
Когда я достигаю http: // локальный / проект / общедоступный, компонент индекса в порядке, но когда я пытаюсь присоединиться к http: // localhost / проект / валюта, это не работает. Я пытаюсь удалить маршрут компонента индекса, но то же самое и с валютой.
У тебя есть идея?
Большое спасибо





Является ли "проект" базовой папкой для приложения?
Добавьте параметр baseName в BrowserRouter
<BrowserRouter basename='/project'>
Вам также необходимо обновить файл маршрута laravel, чтобы всегда переходить к маршруту индекса приложения, если он соответствует шаблону ... / project / ... Итак, / project и / project / currency должны быть маршрутизированы laravel для индексации, которая является приложением, и приложение обрабатывает логику маршрутизации оттуда. Пришлось сделать то же самое с моим проектом CakePHP.
Вам также необходимо обновить файл маршрута laravel, чтобы всегда переходить к маршруту индекса приложения, если он соответствует шаблону ... / project / ... Итак, / project и / project / currency оба должны перейти в индекс, который является приложением и app обрабатывает логику маршрутизации оттуда.
В порядке. Я только что попытался добавить: Route :: get ('/ currency', function () {return view ('index', []);}); Но теперь это всегда индексный компонент, отображаемый
См. Раздел "Creat Wildcard route" blog.pusher.com/react-laravel-application
Я создаю этот маршрут: Route :: get ('/ {path?}', ['Uses' => 'ReactController @ show', 'as' => 'react', 'where' => ['path' => '. *']]);
Это соответствует чему угодно, но всегда отображается компонент индекса
+1 за ссылку на Cakephp, я сделал то же самое, и теперь он работает. Вопрос в том, разве это не противоречит самой цели, для которой была применена внешняя маршрутизация?
Откройте роутер Laravel для ответа на любой запрос!
Route::get('{all?}', function(){
return view('index');
})->where('all', '([A-z\d-/_.]+)?');
маршрутизация из web.php дала бы идеальную маршрутизацию для laravel и реакции, вы можете выполнять любую маршрутизацию из laravel для извлечения данных .... включать
Route::view('/{path?}', 'index');
в конце веб-маршрутов, чтобы он, наконец, загрузился, получив все ваши представления
Спасибо за ответ. Я пытался добавить базовое имя, но это ничего не меняет.