当我通过链接导航到 '/Article/1/' 时,我的React路由器能够正常工作,但是当我刷新浏览器时,它就不能再检测到我的文章组件了。
Root.js
import React from 'react';
import { BrowserRouter as Router, Route, Link, browserHistory } from 'react-router-dom';
import Home from '../page/Home/Index';
import Article from '../page/Article/Index';
const Root = () => {
return (
<Router history={browserHistory}>
<div>
<ul>
<li><Link to={'/'}>Home</Link></li>
<li><Link to={'/About'}>About</Link></li>
</ul>
<hr />
<Route exact path={'/'} component={Home} />
<Route path={'/Article/:id'} component={Article} />
</div>
</Router>
);
};
export default Root;
Server.js
var express = require('express');
var app = express();
app.use('/', express.static(__dirname + '/dist'));
app.listen(9000, function() {
console.log('listening on 9000.')
});
我在网上看到可能与我的server.js文件中没有通配符有关 - 有人可以指导我正确的方向吗?谢谢!
编辑 - 这是我尝试过的(仍未呈现):
app.use(express.static(__dirname + '/dist'))
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/index.html'));
});
BrowserRouter
将在幕后使用browserHistory
,您不需要显式设置它(除非您以某种方式更改了browserHistory
)。 - James