我不想使用服务器端渲染,因为开始工作是一种绝对的痛苦,而且没有它就能让一切正常。
但是,如果我创建一个像/test
这样的新网址并访问localhost:3000 / test我会Cannot get /test
这是我的索引页面的提供方式
app.get("/", function(req, res) {
res.sendFile(__dirname + '/client/index.html')
})
路由文件
const routes = (
<div>
<Route path="/" component={ AppContainer }>
<IndexRoute component={ RegistrationContainer }/>
<Route path="test" component={ StripeContainer }/>
</Route>
</div>
)
export default routes
答案 0 :(得分:1)
我现在正在努力解决这个问题,我认为您需要在React路线之前声明/test
路径。
我将如何在我的应用程序中实现它是在Express中为用户登录声明一些路由,然后在最后收到一些邮件,以便向React发送任何其他内容。
像
这样的东西app.get('/login', function(...));
app.get('/logout', function(...));
app.get('*', <TO-REACT>);
我不确定这是否是处理此问题的正确方法,但它应该有效。
让我知道它是如何为您工作的,或者您是否预见到使用此问题。
更新: 我现在可以确认这对我有用。 以下是我的快递路线文件和基本React文件的缩写版本。
<强> 路由 强>
// redirects any requests to root of domain to React (a polling app)
app.get('/', function(req, res) {
res.redirect('/polls');
});
// authentication routes
app.get('/login' function(....));
app.get('/logout' function(....));
app.get('/login/callback' function(....));
app.get('/login/authorise' function(....));
// React catch all route
app.get('*', function(....{sendfile....});
基本反应文件
import React from 'react';
import ReactDOM from 'react-dom';
import {Router, Route, Redirect, browserHistory} from 'react-router';
const PollListScreen = require('./PollListScreen.js');
const PollAdd = require('./PollAdd.js');
ReactDOM.render(
(
<Router history={browserHistory}>
<Route path='/polls' component={PollListScreen} />
<Route path='/polls/new' component={PollAdd} />
</Router>
), document.getElementById('app')
);