react-router-dom BrowserRouter在构建后无法正常工作

时间:2017-08-29 14:23:12

标签: javascript reactjs react-router react-router-dom

这是我第一次尝试反应。 我使用create-react-app创建项目,然后进行路由,我使用React Router V4进行网络react-router-dom

这是我的index.js文件

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router } from 'react-router-dom';
import App from './App';
import './index.css';

ReactDOM.render(
  <Router>
    <App />
  </Router>,
  document.getElementById('root')
);

使用npm start启动服务器时没有问题。但是,当我使用npm run build构建应用程序时,将其放在我的Apache服务器的www文件夹中并访问它,我的<!-- react-empty: 1 -->内只有root div的空白页面。

<div id="root">
  <!-- react-empty: 1 -->
</div>

我试过寻找类似的案例,但答案总是在webpack.config.js或gulp中添加historyApiFallback,我在create-react-app模板的任何地方都找不到。

我已经尝试了HashRouter,它工作正常,但网址中有/#/是不可取的。

如何在构建应用程序后让BrowserRouter工作?

1 个答案:

答案 0 :(得分:0)

嗯,完全没有问题。它工作,即使它是使用npm run build构建的。我最好的猜测是:你把文件放在错误的文件夹中。

使用npm run build构建代码时,static文件夹应放在MallApp文件夹中。所以你的文件夹结构应该是这样的:

/var/www/mywebfolder/index.html
/var/www/mywebfolder/MallApp/static

检查您的浏览器控制台,我认为它包含错误。无法获取js和css文件。