【发布时间】:2018-02-07 01:22:22
【问题描述】:
这是我第一次尝试做出反应。
我使用 create-react-app 创建了一个项目,然后对于路由,我使用 React Router V4 for web 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 文件夹并访问它时,我只会在root div 中获得带有<!-- react-empty: 1 --> 的空白页面。
<div id="root">
<!-- react-empty: 1 -->
</div>
我曾尝试寻找类似的案例,但答案总是关于在 webpack.config.js 或 gulp 中添加 historyApiFallback,而我在 create-react-app 模板中的任何地方都找不到。
我尝试过HashRouter,它工作正常,但网址中有/#/,这是不可取的。
构建应用后如何让 BrowserRouter 工作?
【问题讨论】:
-
你能分享一下github repo吗?这是检查代码的唯一方法。 create-react-app 和 react-router v4 从来没有遇到过这个问题,所以你这边一定有问题。
-
抱歉回复晚了,这是我的 github 仓库。 github.com/fadeltd/mall-app
-
问题在于您提供页面的方式。如果您使用类似
localhost/myproject的方式访问它。那么它会假设需要渲染的路由将是带有myproject路径的路由,所以如果是这种情况,请添加前缀
标签: javascript reactjs react-router react-router-dom