私はリアクションを試して、それがどのように動作するかを知るためのサンプルプロジェクトを用意しています。リアクションルータがルートを処理できず、一致しなかったことの警告を返すことができません
私はwebpack dev serverを使用していますが、これは実際の展開には十分ではありません。明らかに実際の展開になると、良い解決策はないように見えます。私のドメイン内で私のアプリケーションを使用できないherokuを使用していたことがわかりました。そして、現実の開発では受け入れられないherokuで終わるべきです私が間違っていると、私は自分のWebアプリケーションを配備する最良の方法が何であるかわからないので)。
私のアプリを展開するには、tomcatを使用していると思う唯一の方法でした。だから私は自分のプロジェクトのbundle.jsとindex.htmlファイルをコピーしてEclipse IDEのWebContentに入れました。以下はindex.jsファイルです:私はウェブパックのdevのサーバーを使用する場合
import {render} from "react-dom";
import React from "react";
import {Router, Route, browserHistory, useRouterHistory, IndexRoute} from "react-router";
import { createHistory } from 'history';
import {Provider} from "react-redux";
import Home from "./container/Home";
import {Bridge} from "./router-bridge/Bridge";
import {T} from "./components/T";
import store from "./store";
class Tj extends React.Component {
render() {
const history = useRouterHistory(createHistory)({
basename: '/test'
});
return (
<Router history={history}>
<Route path={"/"} component={Bridge} >
<IndexRoute component={Home} />
<Route path={"user"} component={T} />
<Route path={"home"} component={Home} />
</Route>
<Route path={"/test/"} component={Bridge} >
<IndexRoute component={Home} />
<Route path={"user"} component={T} />
<Route path={"home"} component={Home} />
</Route>
<Route path={"home"} component={Home} />
</Router>
);
}
}
render(
<Provider store={store}>
<Tj/>
</Provider>,
window.document.getElementById('mainContainer'));
だから、私のルータが正常に動作しますが、私は、その結果のためにすべてを設定しますEclipseプロジェクトのWebコンテンツ(にファイルをコピーするとき私と私は私のブラウザのコンソールで次のエラーを取得する)プロジェクトがdeplyable、次のURL http://localhost:8080/test/index.htmlと到達します:
Warning: [react-router] Location "/test/index.html" did not match any routes
私には、また、これと同様のいくつかの記事を見て:
しかし、問題を解決できませんでした。誰も助けることができますか?
お返事ありがとうございます。私はあなたの答えで投稿をipdated。私は上記のようにindex.jsを変更しましたが、次のエラーが表示されます。Uncaught TypeError:履歴がインストールされていますが、createHistoryは関数ではありません –
履歴のバージョンはありますか?たぶん 'v3.2.1'でしょう。 4つある場合、履歴v4はReact Router v4で使用されるため、2または3に切り替える必要があります。 –
また、 'render'メソッドの内部で履歴を作成するべきではありません。これは、' 'が再レンダリングされるたびに新しい履歴を作成するからです。意図したレイアウトを含むようにサンプルコードを更新します。 –