这是我第一次尝试反应。
我使用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工作?
答案 0 :(得分:0)
嗯,完全没有问题。它工作,即使它是使用npm run build
构建的。我最好的猜测是:你把文件放在错误的文件夹中。
使用npm run build
构建代码时,static
文件夹应放在MallApp
文件夹中。所以你的文件夹结构应该是这样的:
/var/www/mywebfolder/index.html
/var/www/mywebfolder/MallApp/static
检查您的浏览器控制台,我认为它包含错误。无法获取js和css文件。