【发布时间】:2017-04-18 15:04:46
【问题描述】:
我正在尝试使用反应路由器 v4。我使用的版本是 4.1.1。当页面加载时它会按原样呈现 Home 组件。但是如果我导航到localhost:8080/about 或localhost:8080/test2,我会在浏览器中看到这个
Cannot GET /about
我的App.jsx 文件:
import React from 'react';
import { BrowserRouter, Route, Link } from 'react-router-dom';
import Home from '../components/Home.jsx';
import Test from '../components/Test.jsx';
const Test2 = () => (
<div>test2 component</div>
);
const App = (props) => (
<BrowserRouter>
<div className="container-fluid">
<Route exact path="/" component={Home} />
<Route path="/about" component={Test} />
<Route path="/test2" render={Test2} />
</div>
</BrowserRouter>
)
export default App;
Webpack 配置:
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackPluginConfig = new HtmlWebpackPlugin({
template: './client/index.html',
filename: 'index.html',
inject: 'body'
});
module.exports = {
entry: [
'./client/index.js'
],
output: {
path: __dirname + '/dist',
filename: 'bundle.js'
},
module: {
loaders: [
{ test: /\.js$/, loader: 'babel-loader', exclude: '/node_modules/'},
{ test: /\.jsx$/, loader: 'babel-loader', exclude: '/node_modules/'}
]
},
plugins: [HtmlWebpackPluginConfig],
devServer: {
contentBase: './dist',
historyApiFallback: true,
}
};
【问题讨论】:
-
问题出在您的服务器上。您使用的是
webpack-dev-server还是其他人。显示相关配置。 -
是的,我已经编辑并包含了我的 webpack。是的,我正在使用 webpack-dev-server
-
没有提到
webpack-dev-server你能展示你的 package.json 你是如何启动你的开发服务器的吗? -
@Panther "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "webpack-dev-server" },跨度>
-
将
package.json中的start更改为webpack-dev-server --history-api-fallback,然后重新启动服务器。
标签: javascript reactjs react-router url-routing webpack-dev-server