2016-07-24 7 views
0

タイトルのように、URLの末尾に#を追加しないようにするにはどうすればいいですか?反応ルータがURLを#追加するのを防ぐには?

routes.jsx

(export default (withHistory, onUpdate) => { 
const history = withHistory? 
       (Modernizr.history ? 
       browserHistory 
       : hashHistory) 
      : null; 
return (
<Router history={history} onUpdate={onUpdate}> 
    <Route path='/' component={App}> 
    <IndexRoute component={quotes} /> 
    <Route path='/app/search' component={SimpleSearch} /> 

    <Route path='pathName' component={Blank1} /> 
     <Route path='pathName/:category' component={Blank1}/> 
     <Route path='pathName/:category(/:page)' component={Blank1}/> 
    <Route path='app/:id' component={Blank1} /> 

    </Route> 

</Router> 

); 
}; 

blank1.jsx

method(current,previous){ 
    const category= this.props.params.category; 
    const page = current; 
    const path = `/pathName/${category}/${page}`; 
    browserHistory.push(path); 
... 
} 

での方法私は物事の多くを試みたが、#せずにリンクを取得することができませんでした。 最後に#が追加され、componentWillReceivePropsが引き続きトリガーされ、ここでthis.setStateで状態が変更されます。また、ナビアイテムのナビゲーションでも、#

のため
+1

あなたは私が アプリを持っている私のserver.jsにハッシュ –

答えて

0

cleanというURLを参照しているため、アクティブではありません。あなたはすべての要求を介してルーティングされるようにするには、その後、あなたのサーバーに*ルートを追加する必要があります代わりにhasHistory/

browserHistoryを使用したい

は、ルータを反応します。サーバールートの最後にこのような

何か:詳細情報チェックアウトのために

app.get('*', function (req, res) { 
    res.sendFile(path.join(__dirname, 'public', 'index.html')) 
}); 

this example

+0

なしのURLを取得するためにbrowserHistoryを使用する必要があります。 get( '*'、function(req、res、next){ renderHTML(req、res、next); }); –

関連する問題