У меня есть следующая конфигурация маршрутизатора:
const App = () => (
<HashRouter>
<div className="app">
<Switch>
<Route exact path="/" component={Landing} />
<Route exact path="/search" component={Search} />
<Route path="/details/:id" component={Details} />
<Route component={FourOhFour} />
</Switch>
</div>
</HashRouter>
)
Когда я загружаю http://localhost:8080/#/details/12345
, детали моего компонента отображаются правильно;
если я переключаюсь на BrowserRouter, загружаю http://localhost:8080/details/12345
, я получаю пустую страницу: index.html отображается правильно, но я получаю следующие ошибки в консоли:
отказался применять стиль от
'http://localhost:8080/details/public/style.css', потому что его тип MIME
('text / html') не является поддерживаемым типом MIME таблицы стилей, а является строгим MIME
проверка включена.
GET http://localhost:8080/details/public/bundle.js 404 (не найдено) 1: 1
Отказался от выполнения скрипта с
'http://localhost:8080/details/public/bundle.js', потому что его тип MIME
('text / html') не является исполняемым, и строгая проверка типов MIME
включен.
Я слежу за онлайн-курсом, я использую веб-пакет, я думаю, что у меня все настройки совпадают с настройками курса, приложение в видео курса работает правильно
Мой webpack.config.js выглядит следующим образом:
const path = require('path')
const webpack = require('webpack')
module.exports = {
context: __dirname,
entry: [
'react-hot-loader/patch',
'webpack-dev-server/client?http://localhost:8080',
'webpack/hot/only-dev-server',
'./js/ClientApp.jsx'
],
devtool: process.env.NODE_ENV === 'development' ? 'cheap-eval-source-map' : false,
output: {
path: path.resolve(__dirname, 'public'),
filename: 'bundle.js',
publicPath: 'public/'
},
devServer: {
hot: true,
publicPath: '/public/',
historyApiFallback: true
},
resolve: {
extensions: ['.js', '.jsx', '.json']
},
stats: {
colors: true,
reasons: true,
chunks: true
},
plugins: [new webpack.HotModuleReplacementPlugin(), new webpack.NamedModulesPlugin()],
module: {
rules: [
// {
// enforce: 'pre',
// test: /\.jsx?$/,
// loader: 'eslint-loader',
// exclude: /node_modules/
// },
{
test: /\.jsx?$/,
loader: 'babel-loader'
}
]
}
}