使用Netlify URL部署的React Redux App问题

时间:2018-09-27 08:11:21

标签: javascript reactjs netlify

我的问题很简单。我构建了一个React Redux应用程序,并尝试将其部署在Netlify上。一切运行正常,应用程序在线,安装了SSL证书,显示了根页面,域名...但是,每当我尝试访问myapp.com/login之类的路由之一时,都会收到404错误。

您的帮助将非常宝贵,让我终于能够上线。

非常感谢,我希望我足够清楚。

2 个答案:

答案 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访问历史道具。有时,历史道具不会传递给子组件。