我的问题很简单。我构建了一个React Redux应用程序,并尝试将其部署在Netlify上。一切运行正常,应用程序在线,安装了SSL证书,显示了根页面,域名...但是,每当我尝试访问myapp.com/login之类的路由之一时,都会收到404错误。
您的帮助将非常宝贵,让我终于能够上线。
非常感谢,我希望我足够清楚。
答案 0 :(得分:1)
由于React应用程序中的路由由javascript处理,因此您可能未设置重定向规则。当您请求某个路由时,服务器找不到该路由,因为它不知道您的反应路由。基本上,您必须撤销对index.html的所有请求,并让react处理所有路由。有关如何为netlify here
进行设置的指南答案 1 :(得分:0)
我怀疑您的问题与Netlify有关,因为正如Martin所解释的,路由本身会做出反应。最有可能发生的事情是您的父组件无法访问react-router属性,因此,无论何时url更改,它都不会通过shouldComponentUpdate。假设语法正确,我将尝试使用withRouter将您的父组件包装起来,如下所示:
import {withRouter, Switch, Route} from 'react-router-dom'
class youComponent extends Component{
constructor(props){
super(props);
}
render(){
let {teamName} = this.props;
return(
<Switch>
<Route path="/path2" component={ChildComponent} />
... other routes
<Route path="/path3" render={(props) => <ChildComponent2
teamName={teamName} />} />
</Switch>
)
}
}
export default withRouter(yourComponent)
还要确保您的子组件可以从react-router-dom访问历史道具。有时,历史道具不会传递给子组件。