【发布时间】:2020-04-09 09:10:50
【问题描述】:
使用 webpack 开发一个 react 应用程序,在我的 app.js 路由器中,当我将路由指定为 /foo 时,组件会正常呈现,但是当我将路由指定为 /foo/bar 时,我收到以下错误 “来自“http://localhost:9000/foo/bar/bundle.js”的资源由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff)而被阻止”
App.js
function App() {
return (
<div className="App">
<BrowserRouter>
<Router history={history}>
<Switch>
<Route exact path="/api/login" component={Login} /> //gives error
<Route exact path="/login" component={Login} /> //renders normally
<Route component={Error} />
</Switch>
</Router>
</BrowserRouter>
</div>
);
}
Webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: path.resolve(__dirname, 'src/index'),
output:{
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
module:{
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: {
presets: ['@babel/react']
}
}
]
},
{
test: /\.css$/,
exclude: /node_modules/,
use:[
{loader: 'style-loader'},
{loader: 'css-loader'}
]
},]
},
devServer:{
contentBase: path.resolve(__dirname, 'dist'),
port: 9000,
historyApiFallback: true
},
plugins:[
new HtmlWebpackPlugin({
template: "src/index.html"
})
]
};
【问题讨论】:
-
您是否使用
express作为后端?
标签: reactjs webpack react-router