通过链接导航到'/ 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'));
});
答案 0 :(得分:1)
是的,那就是它。这里的目标是让您的客户端处理路由而不是服务器,为此,您需要服务器返回客户端应用程序,无论它获得什么URL。我在网上看到,我的server.js中没有通配符可能与我有关。
简单修复 - 在服务器路由上将Copy-Item -Path 'some external path' -Destination 'some internal path' -FromSession $s
更改为/
。