Reactjs 拉威尔+;使用React路由器dom进行React路由

Reactjs 拉威尔+;使用React路由器dom进行React路由,reactjs,laravel,react-router-dom,Reactjs,Laravel,React Router Dom,我尝试在我的laravel应用程序上创建react路由。但这不起作用。 我已经听了好几篇教程,但都没有成功 首先,我将此路由添加到route.php: Route::get('/', function () { return view('index', []); }); 然后,在index.blade.php中: <div id="app"></div> <script src="{{asset('js/app.js')}}" ></s

我尝试在我的laravel应用程序上创建react路由。但这不起作用。 我已经听了好几篇教程,但都没有成功

首先,我将此路由添加到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>

当我到达时,索引组件是正常的,但当我尝试加入时,这不起作用。我试图删除索引组件的路径,但对于货币也是如此

你有什么想法吗

非常感谢

应用程序的基本文件夹是“project”吗

将baseName参数添加到BrowserRouter

    <BrowserRouter basename='/project'>


您还需要更新laravel路由文件,以便始终转到应用程序索引路由(如果它与模式匹配…/project/)。。。 因此/project和/project/currency都应该由laravel路由到index,index是应用程序,应用程序从此处处理路由逻辑。 我的CakePHP项目也必须这样做。

应用程序的基本文件夹是“project”吗

将baseName参数添加到BrowserRouter

    <BrowserRouter basename='/project'>


您还需要更新laravel路由文件,以便始终转到应用程序索引路由(如果它与模式匹配…/project/)。。。 因此/project和/project/currency都应该由laravel路由到index,index是应用程序,应用程序从此处处理路由逻辑。
我的CakePHP项目也必须这样做。

打开Laravel路由器以响应任何请求

Route::get('{all?}', function(){
    return view('index');
})->where('all', '([A-z\d-\/_.]+)?');

打开Laravel路由器以响应任何请求

Route::get('{all?}', function(){
    return view('index');
})->where('all', '([A-z\d-\/_.]+)?');

从web.php路由将为laravel和react提供完美的路由,您可以从laravel执行任何路由来检索数据。。。。包括

Route::view('/{path?}', 'index');

在web路由结束时,它将被加载,以便最终从web获取您的所有视图。php将为laravel提供完美的路由并作出反应,您可以从laravel执行任何路由以检索数据。。。。包括

Route::view('/{path?}', 'index');

在网络路线的最后,它将被加载到最后获得您的所有视图

谢谢您的回答。我已尝试添加basename,但这不会改变任何内容。您还需要更新laravel路由文件,以便始终转到应用程序索引路由(如果它与模式匹配…/project/)。。。所以/project和/project/currency都应该转到index,这是应用程序,应用程序从此处处理路由逻辑。Ok。我刚刚尝试添加:Route::get('/currency',function(){returnview('index',[]);});但现在它总是显示索引组件参见“创建通配符路由”第一节创建此路由:路由::get(“/{path?}”,[“使用”=>”ReactController@show“,”作为“=>”反应“,”其中“=>['path'=>”.']]);谢谢你的回答。我已尝试添加basename,但这不会改变任何内容。您还需要更新laravel路由文件,以便始终转到应用程序索引路由(如果它与模式匹配…/project/)。。。所以/project和/project/currency都应该转到index,这是应用程序,应用程序从此处处理路由逻辑。Ok。我刚刚尝试添加:Route::get('/currency',function(){returnview('index',[]);});但现在它总是显示索引组件参见“创建通配符路由”第一节创建此路由:路由::get(“/{path?}”,[“使用”=>”ReactController@show“,”作为“=>”反应“,”其中“=>['path'=>”.']]);