2016-03-31 15 views
0

私は反応を覚えようとしていますが、クライアント側のルーティングを試みるときにいくつかの問題が発生しています。クライアント側のレンダリングエラーが反応しない/

:あなたは私が私のファイルで、私は、ブラウザのページに得続けるlisted.Theエラーを持って間違いが

/

を得ることができない私は私のコンソールに表示されるエラーがされている参照の場合は私に知らせてくださいlive.bundle.js:14は、GET http://localhost:8080/ 404(見つかりません)

ここ

が私のファイルです:

webpack.config.js

var webpack = require('webpack'); 
module.exports = { 
    entry: [ 
    'webpack/hot/only-dev-server', 
    './js/app.js' 
    ], 
output: { 
    path: __dirname + '/build', 
    filename: "bundle.js" 
    }, 
    module: { 
    loaders: [ 
     { test: /\.js?$/, loaders: ['react-hot', 'babel', 'babel-loader'], exclude: /node_modules/ }, 
     // { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }, 
     { test: /\.css$/, loader: "style!css" } 
    ] 
    }, 
    devServer: { 
    contentBase: "./src/www", 
    noInfo: true, 
    hot: true, 
    inline: true 
    }, 
    plugins: [ 
    new webpack.NoErrorsPlugin() 
    ] 
}; 

.babelrc

{ 
    "presets": ["es2015", "react"] 
} 

index.htmlを

<!doctype html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>New React App</title> 
    </head> 
    <body> 
    <section id="react"></section> 
    <script src="/build/bundle.js"></script> 
    </body> 
</html> 

/js/app.js

import React from 'react'; 
import Router from 'react-router'; 
import {DefaultRoute, Link, Route, RouteHandler} from 'react-router'; 

import LoginHandler from './components/Login.js'; 

class App extends React.Component{ 
    render() { 
    return(
     <div className="nav"> 

     <Link to="app">Home</Link> 
     <Link to="login">Login</Link> 

     {/* Important Part */} 
     <RouteHandler/> 

     </div> 
    ); 
    } 
} 

let routes = (
    <Route name="app" path="/" handler={App}> 
    <Route name="login" path="/login" handler={LoginHandler}/> 
    </Route> 
); 

ReactDOM.run(routes, function (Handler) { 
    React.render(<Handler/>, document.body); 
}); 

/js/components/Login.js

import React from 'react'; 
class Login extends React.Component{ 
    render() { 
    return(
     <div>Welcome to login</div> 
    ); 
    } 
} 

export default Login; 

私は助けに感謝します。

は、ここに私のwebpack.config.jsファイルが@Frederick Mfinangaに応じ

var webpack = require('webpack'); 
module.exports = { 
    entry: [ 
    'webpack/hot/only-dev-server', 
    './js/app.js', 
    'webpack-dev-server/client?localhost:8080' 
    ], 
    output: { 
    path: __dirname + '/build', 
    filename: "bundle.js" 
    }, 
    module: { 
    loaders: [ 
     { test: /\.js?$/, loaders: ['react-hot', 'babel', 'babel-loader'], exclude: /node_modules/ }, 
     // { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }, 
     { test: /\.css$/, loader: "style!css" } 
    ] 
    }, 
    devServer: { 
    // contentBase: "./src/www", 
    noInfo: true, 
    hot: true, 
    inline: true 
    }, 
    plugins: [ 
    new webpack.NoErrorsPlugin(), 
    new webpack.HotModuleReplacementPlugin() 
    ] 
}; 
+0

あなたのアプリが出力ファイル 'bundle.js'を作成したかどうか確認しましたか?そうでなければ、それが理由です。特定のファイルを見つけることができず、コード内の問題である 'index.html'ファイルにファイルを読み込むためです。ですから、 'bundle.js'ファイルが作成されていることを確認してください。 –

+0

こんにちはアミール、私のアプリは、ビルドと呼ばれるフォルダ内のbundle.jsファイルを作成しています。 –

答えて

0

に更新され、あなたのdevServerの設定から

contentBase: "./src/www", 

を削除します。デフォルトでは、現在のディレクトリにあるファイルが提供されます。私はあなたが探しているもので、あなたのindex.htmlがどこに住んでいるのでしょうか?正しい?

+0

こんにちはFrederick、私はそれを取り除くとエラーが発生します。「Uncaught Error:[HMR] Hot Module Replacementが無効になっています。あなたはまだ私がこれを行うことを提案していますか?もしそうなら、私は今リストしたエラーをどのように解決できますか?また、私はindex.htmlファイルを提供したいと思います。私のindex.htmlがどこに住んでいるのですか? –

+0

はいまだそれを行い、この行を入力配列に追加してください。 'webpack-dev-server/client?http:// localhost:8080'、 これに応じてポートを変更して、 をプラグインアレイに追加します。new Webpack.HotModuleReplacementPlugin() –

+0

私はあなたの提案に従いました。私がブラウザに入れたURLは "localhost:8080/webpack-dev-server /#";です。私はまだ「Uncaught Error:[HMR] Hot Module Replacementが無効になっています」というエラーが表示されます。webpack.config.jsファイルに変更内容を表示するために質問が更新されました。私があなたの指示を誤解した場合は、私に知らせてください。 –