В истории браузера React router v4 не работает разделение кода - PullRequest
0 голосов
/ 05 мая 2018

При использовании разбиения кода хэш-истории работает с реагирующим маршрутизатором, но теперь я собираюсь перейти к производству, и я хочу переключиться на историю браузера, она выдает ошибку, когда я пытаюсь изменить маршрут, например, если я пытаюсь перейти к маршрут входа 127.0.0.1:8080/auth/login:

Отказался выполнять скрипт из 'http://127.0.0.1:8080/auth/3.bundle.js', потому что его тип MIME ('text / html') не является исполняемым, и строгая проверка типов MIME включен.

и

Uncaught (в обещании) Ошибка: загрузка чанка 3 не удалась. (ошибка: http://127.0.0.1:8080/auth/3.bundle.js) в HTMLScriptElement.onScriptComplete (начальная загрузка: 108)

Это мой роутер

<Router history={history}>
    <ConnectApp />
</Router>

Подключение приложения:

 <Switch>
    {/* Front end */}
    <Route path="/" component={AsyncHome} exact />
    <Route path="/post/:id" component={AsyncPost} exact />

    {/* authentication */}
    <Route path="/auth/:section" component={AsyncLogin} exact />

    {/* Backend */}
    <PrivateRoute path="/admin/:path" component={AsyncAdmin} exact />
    <PrivateRoute
        path="/admin/edit-post/:id"
        component={AsyncEditPost}
        exact
    />

    <Route component={Err404} />
</Switch>

history.js:

import { createBrowserHistory } from 'history';

export default createBrowserHistory({
    // add configurations here
});

webpack.dev.config.js

module.exports = merge(common, {
    mode: 'development',
    devtool: 'inline-source-map',
    devServer: {
        contentBase: './dist',
        historyApiFallback: true
    }, 
    plugins: [
        new BundleAnalyzerPlugin()
    ]
}

* Если есть еще код для добавления, пожалуйста, укажите в комментарии

Спасибо

1 Ответ

0 голосов
/ 06 мая 2018

Добавить publicPath:"/" в конфигурацию:

module.exports = merge(common, {
    mode: 'development',
    devtool: 'inline-source-map',
    devServer: {
        contentBase: './dist',
        historyApiFallback: true
    }, 
    plugins: [
        new BundleAnalyzerPlugin()
    ],

    output: {
        path: path.resolve('dist'),
        filename: '[name].bundle.js',
        chunkFilename: '[name].bundle.js',
        publicPath: '/' // Add this line
    },
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...