Ruby on rails Rails 5.1+;Webpacker&x2B;反应路由器
我正在尝试在一个新项目中使用这三种方法。 我想使用Ruby on rails Rails 5.1+;Webpacker&x2B;反应路由器,ruby-on-rails,webpack,react-router,webpacker,Ruby On Rails,Webpack,React Router,Webpacker,我正在尝试在一个新项目中使用这三种方法。 我想使用react路由器处理路由 使用“开箱即用”设置,当我从例如localhost:3000/开始,然后单击例如链接路由到注册页面时,它工作正常。但是当我尝试输入localhost:3000/signup时,它说没有路由(因为没有使用Rails创建的路由) 我如何才能整合这一点 您可以通过使用react router dom和HashRouter而不是BrowserRouter来实现这一点。处理这种情况的正确解决方案是在Rails config/rou
react路由器
处理路由
使用“开箱即用”设置,当我从例如localhost:3000/
开始,然后单击例如链接
路由到注册
页面时,它工作正常。但是当我尝试输入localhost:3000/signup
时,它说没有路由(因为没有使用Rails创建的路由)
我如何才能整合这一点 您可以通过使用
react router dom
和HashRouter
而不是BrowserRouter
来实现这一点。处理这种情况的正确解决方案是在Rails config/routes.rb文件中定义所有react路由
问题是Rails必须知道React正在处理的路由,否则它会试图接管并处理应用程序的路由
因此,假设您的React的前端控制器路径是:root'pages#index'
,在config/routes.rb中如下所示:
Rails.application.routes.draw do
root 'pages#index'
end
因此,要使您的React路由正常工作,而又不受Rails的干扰,您可以这样做:
Rails.application.routes.draw do
root 'pages#index'
get 'admin', to: 'pages#index'
get 'admin/dashboard', to: 'pages#index'
get 'admin/user', to: 'pages#index'
end
您只需将所有反应路由重定向到前端控制器“页面#索引”。那就行了