BrowserRouter не открывается с параметром URL - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть следующая конфигурация маршрутизатора:

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'
      }
    ]
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...