【发布时间】:2019-09-16 17:40:31
【问题描述】:
我对 react 和 webpack 还很陌生,我正在尝试使用 react-router-dom 在我的 web 应用程序中进行路由。
但是发生了一些奇怪的事情,当我将组件的路径定义为 '/:guid' 时,一切正常,但如果我将其设置为 '/users/:guid',当我刷新页面。
我读过一些帖子说要在我的 webpack.config.js 中添加 'publicPath' 和 'historyApiFallback: true' 但由于某种原因它仍然无法正常工作。虽然,在添加之前,我得到了“无法获取 url”的错误。
Router.js:
import React from 'react';
import {BrowserRouter, Route, Switch} from 'react-router-dom';
import UserInfo from '../Containers/UserInfo/UserInfo';
import Main from './Main/Main';
const Router = () => {
return (
<BrowserRouter>
<Switch>
<Route exact path='/' component={Main} />
<Route path='/users/:guid' component={UserInfo} />
</Switch>
</BrowserRouter>
);
};
export default Router;
webpack.config.js:
const path = require('path');
const DIST_DIR = path.resolve(__dirname, 'dist');
const SRC_DIR = path.resolve(__dirname, 'src');
const config = {
entry: `${SRC_DIR}/app/index.js`,
output: {
path: `${DIST_DIR}/`,
filename: 'bundle.js',
publicPath: '/'
},
module: {
rules: [
{
test: /\.js?$/,
include: SRC_DIR,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-2']
}
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
},
devServer: {
historyApiFallback: true
}
};
module.exports = config;
【问题讨论】:
-
我无法重现您的问题 --> 对我来说工作正常 codesandbox link。您能否发布问题可重现的代码框链接。
标签: node.js reactjs react-router web-config