我希望这是一个简单的问题。我有一个快速服务器,有一条路线。
var express = require('express');
var app = express();
var path = require('path');
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname + '/src/index.html'));
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});

index.html链接到以下js:
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Link, browserHistory } from 'react-router';
import Redux from 'redux';
var App = React.createClass({
render: () => {
return(
<div>React!
<Link to={`/page2`}>Page 2</Link>
</div>
);
}
});
var AnotherView = React.createClass({
render: () => {
return(
<div>Page 2
<Link to={`/`}>App</Link></div>
);
}
});
ReactDOM.render(
<Router history={browserHistory}>
<Route path="/" component={App}></Route>
<Route path="/page2" component={AnotherView}/>
</Router>,
document.getElementById('app')
);
&#13;
当我转到localhost:3000并从那里开始时,我可以点击链接并更改网址。问题是,如果我在使用路由器时访问localhost:3000 / page2会发生什么?是否应该弄清楚它应该显示AnotherView组件并显示它?我得到&#34;不能GET / page2&#34;来自快递。如果要做到这一点我需要做什么?
答案 0 :(得分:1)
app.get('*', function (req, res) {
res.sendFile(path.join(__dirname + '/src/index.html'));
});
服务器应该处理所有请求,而不仅仅是'/'
。