我有一个react应用程序,它使用react-router和redux,我一直在react-dev-server上通过localhost:3000开发。它与Flask服务器上通过localhost:5000开发的Flask后端连接,专门用于处理API调用和各种后端自动化任务。
我想要做的就是使用相同的主机名将这两台服务器移到Apache上,Flask将处理对myhostname.com/api/v1/{request}
的所有请求,而React将处理其他所有请求。
我相信这是可能的,但我不确定如何处理它。我知道我可以将我的React应用程序捆绑起来并通过Flask提供服务,这里找到了一个很好的解决方案Flask and React routing,但是如果可能的话,我希望这些组件在物理上彼此分离。 / p>
我可以通过Apache独立运行前端和后端,没有问题,但是当一起运行时,所有请求都由React处理。
不确定这是否真的是一般的最佳方法,愿意接受更好的方法来实现这样的建议。但我认为解决方案将在Apache中。我还没有弄清楚如何更专门地为我指导流量。
React将请求捕获到/ api,并从此块重定向它,这是我借用的。
@connect(store => {
return { user: store.user }
})
class PrivateRoute extends React.Component {
render() {
const { user, component, ...rest } = this.props;
return (
<Route {...rest} render={props => (
user.isAuthenticated
? React.createElement(component, props)
: (<Redirect to={{
pathname: '/login',
state: { from: props.location }}}/>)
)}/>
);
}
}