2016-09-14 98 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

相關問題