2016-09-14 101 views
5

现在我正在使用browserify-rails来编译js文件,使Ruby on Rails应用程序上的React应用程序(使用out react-rails gem)。如何在Rails路由器上使用React Router(不使用react-rails gem)?

所以我想我们react-router来配置应用程序的路由器

这是我main.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { Router, Route } from 'react-router'; 
import { browserHistory } from 'react-router'; 

/*Import Component*/ 

import DashBoard from './components/dashboard'; 
import Group from './components/dashboard'; 

/* 
* 
* Routes 
* 
* */ 

var routes = (
    <Router history={browserHistory}> 
     <Route path="/" component={DashBoard}/> 
     <Route path="/group" component={Group}/> 
    </Router> 
); 

ReactDOM.render(routes , document.querySelector('#main')); 

但是,当我去

http://my.app.dev/group 

No route matches [GET] "/group" (From Rails) 

所以我该如何解决这个问题,并使React路由器脱离Rails路由器?

谢谢!

回答

15

如果要重定向所有的请求,单页,很简单:

# config/routes.rb 

root 'dash_board#index' 
get '*path', to: 'dash_board#index' 

如果Rails会呈现你的阵营仪表板式#索引页上的组件,作出反应的路由器会从那里拦截它。

+0

这是一个很好的做法吗?然后你做所有的行动非HTML和处理所有路由反应?试图学习反应路由的目的,谢谢! –

+0

拥有“第一级”通配符路线可以解决某些宝石的问题。你可以做的是安装你的应用程序,例如在命名空间中。例如:https:// yourdomain/a。它更丑但更安全。 – Daniel

相关问题