Как настроить сервер webpack dev с маршрутизатором react dom v4?
это код моей конфигурации webpack:
const compiler = webpack({
entry: ['whatwg-fetch', path.resolve(__dirname, 'js', 'app.js')],
module: {
loaders: [
{
exclude: /node_modules/,
test: /.js$/,
loader: 'babel',
},
],
},
output: {filename: 'app.js', path: '/'},
});
const app = new WebpackDevServer(compiler, {
contentBase: '/public/',
proxy: {'/graphql': `http://localhost:${GRAPHQL_PORT}`},
publicPath: '/js/',
stats: {colors: true},
});
app.use('/', express.static(path.resolve(__dirname, 'public')));
отлично работает, приложение работает на localhost: 3000 / index.html, но когда я пытаюсь реализовать React Router dom v4. Это не работает. Это код:
const About = () => <div> <h1>About</h1> </div>
ReactDOM.render(
<BrowserRouter>
<div>
<Route exact path='/' component={App}/>
<Route path='/about' component={About}/>
</div>
</BrowserRouter>,
mountNode
);
это результат на localhost:3000/ И на localhost:3000/об. Я получаю сообщение об ошибке: не удается получить / о. Не то, что я ожидал, почему бы это не сделать?
о
1 ответов
Я не думаю, что это имеет какое-либо отношение к webpack-config. здесь является базовым репозиторием github с использованием react-router-4.0. Я создал этот пример без каких-либо конкретных изменений, связанных с react-router-4.0 в конфигурации webpack.
добавьте "devServer" в конфигурацию webpack, если еще нет:
devServer: {
historyApiFallback: true,
}
два небольших предложения в вашем коде, попробуйте использовать "точный" с путем Для "о", т. е.
<Route exact path='/about' component={About}/>
и, добавить скобки для const о т. е.
const About = () => (<div> <h1>About</h1> </div>);
надеюсь, это решает ваш запрос. Дайте мне знать, если вам понадобится какая-либо другая информация.