Create a route that maps everything to one controller, like so:
Route::get('/{path?}', [
'uses' => 'ReactController@show',
'as' => 'react',
'where' => ['path' => '.*']
]);
Then in your controller, just show the HTML page that contains the react root document:
class ReactController extends Controller {
public function show () {
return view('react');
}
}
Then do everything as normal with react router. Seems to work well for me.
Update for Laravel 5.5
If your controller only returns a view (like in the example above), you can replace all of the above code with this in your routes file:
Route::view('/{path?}', 'path.to.view')
->where('path', '.*')
->name('react');
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…