2016-07-18 36 views
0

私のwebpack設定では、index.htmlが提供されたままでHTMLWebpackPluginを使用します。反応ステータス404と反応ルータとHTMLWebpackPlugin

plugins: [ 
    new HTMLWebpackPlugin({ 
    title: 'My App', 
    favicon: path.join(__dirname, "../src/public/fav.ico") 
    }) 
] 

私は、これは、このようなindex.htmlを生成さらすことだ:私は、クライアント側を使用してい

app.use('/', express.static(__dirname)); 

を、反応-ルータを、ここでは私のルートです:

export default (
    <Route path="/" component={App}> 
    <Route path="home" component={HomePage} /> 
    </Route> 
) 

http://localhost:1337/にアクセスすると正しく動作し、「App」コンポーネントが正しく表示されますが、http://localhost:1337/homeにアクセスしようとすると、ルート/ homeのSERVER-SIDEのように見えるので、404が表示されます。もちろん

私はserver.jsに追加する場合:

app.get('/home', function(req, res) { 
    res.json({name: 'john'}); 
}) 

適切なJSONオブジェクトを返しますhttp://localhost:1337/homeコールを。

私には何が欠けていますか?

答えて

-1

私は通常、おおよそこのような基本的なルートを行っています:

let React = require('react'); 

let Router = require('react-router'); 
let DefaultRoute = Router.DefaultRoute(); 
let Route = Router.Route(); 


<Route name="app" path="/" handler={require("./components/App"}> 
    <DefaultRoute handler={require("./components/HomePage"} /> 
    <Route name="anotherSite" handler={require("./components/anotherSite"} /> 
    <Route name="about-us" handler={require("./components/About"} /> 
</Route> 

あなたがルートに名前を付けるときに、特定のパスを使用する必要はありません。慣習として、ルート名は、意図的に名前以外のパスでパスオプションを作成する場合を除いて、パスと同じです。

それでも問題が解決しない場合は、さらに詳しい情報を質問に追加してください。

+0

いいえ、それは残念ながら私の問題とは関係ありません。私の問題は、ブラウザがネストされたルート(ここ/ home)でSERVERを呼び出しようとしていて、何も見つからずに404を取得しようとしていることです。 – Max

+0

私はあなたにルートを設定する別の方法を提供したかったのです。通常、エクスプレスは、アプリケーションが読み込みを終了したら、アプリとは何の関係もないはずです。それは奇妙な部分ですので、私は反応の部分でエラーが予想されます。あなたが私たちに与えた唯一のことはルートです。そのため、私は詳細な情報を求めて、問題を解決するために別のルーティング手法を提示しようとしました – Ahnzh

関連する問題