在同一个laravel应用程序项目中托管react app和laravel后端(管理面板)

时间:2019-10-05 13:46:12

标签: reactjs laravel laravel-5

我想将react应用程序和laravel应用程序托管在同一个laravel应用程序项目中。 前端应用是react和backlar(管理面板)laravel。

我想将所有请求重定向到特定的前端视图,但第一个URL段== backend /:any

例如。

http://host.com/backend/(any) 继续使用laravel路由器

http://host.com/(any),但后端/ 继续使用反应路由器

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在“ routes / web.php”中尝试类似的操作:

// WRITE BACK-END ROUTES AT FIRST
Route::group([
    'prefix' => 'backend',
], function () {

    Route::get('/', 'AdminController@dashboard')->name('dashboard');
    Route::get('admin-page-1', 'AdminController@page1')->name('page1');
    Route::get('admin-page-2', 'AdminController@page2')->name('page2');
    // some other admin routes if you need
});
// FRONT ROUTE(S)
Route::get('/{text}', 'FrontController@front')->name('front');

答案 1 :(得分:0)

您在这里有两个选择,可以将一个正则表达式传递给any路由,以忽略带有API前缀的路由

Route::get('/{any}', function () {
   return view('index.blade.php');
})->where('any', '^(?!backend).*$');
Route::fallback(function () {
    return view('index.blade.php');
});

来自the docs

后备路线

使用Route::fallback方法,您可以定义一个路由,当没有其他路由与传入请求匹配时将执行该路由。通常,未处理的请求将通过应用程序的异常处理程序自动呈现“ 404”页面。但是,由于您可以在fallback文件中定义routes/web.php路由,因此web中间件组中的所有中间件都将应用于该路由。您可以根据需要随意向此路由添加其他中间件:

Route::fallback(function () {
    //
});
  

后备路由应始终是应用程序注册的最后一条路由。

相关问题