【发布时间】:2018-04-09 07:23:15
【问题描述】:
我有一个具有以下路线的应用程序:
export default class Content extends Component {
constructor() {
super();
}
render() {
return (
<Switch>
<Route exact path='/' component={Home}/>
<Route path='/restaurant/:id' component={Restaurant}/>
<Route path='/admin' component={Admin}/>
</Switch>
)
}
}
路线在应用程序中运行良好。例如,如果我运行我的 live-server 命令,它会在http://127.0.0.1:8080/ 中弹出并运行路由。从那里我可以单击一个链接并带我到其他路线。但是,如果我尝试通过 url 去那里,它会给我一个“无法获取/路由”错误。
当我尝试在这些路由上进行表单提交时,这是一个问题,因为重定向到其自身不再起作用。
我正在使用 webpack 并阅读了与它有关的内容,但没有找到解决方案。
这是我的 webpack:
var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: [
'./src/app.jsx', './src/sass/main.scss', './src/index.js'
],
output: {
path: __dirname + "/src",
filename: 'bundle.min.js',
},
plugins: [
new webpack.DefinePlugin({ // <-- key to reducing React's size
'process.env': {
'NODE_ENV': JSON.stringify('development')
}
})
// new webpack.optimize.UglifyJsPlugin(), //minify everything new
// webpack.optimize.AggressiveMergingPlugin(), //Merge chunks
],
watch: true,
module: {
loaders: [{
test: /.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
presets: ['es2015', 'react']
}
}, { // regular css files
test: /\.scss$/,
loader: 'style-loader!css-loader!sass-loader'
}]
}
};
我没有使用任何服务器,这是我第一次使用路由,所以我很困惑。我使用 live-server 来部署我的 react 应用程序和 webpack 来构建和捆绑我的 scss 和 jsx 等。
感谢您的帮助!
【问题讨论】:
标签: reactjs webpack react-router