部署后,React路由器无法在云环境中工作

问题描述

成功登录后,即使浏览器URL中的路由路径正确,我的React应用程序也会变为空白。当我在Azure云上部署我的应用程序时,在本地和IIS服务器上都运行良好。

我的应用程序托管为.net核心API应用程序,它具有前端响应。通过运行npm run build命令,捆绑反应源并将其发布到wwwwroot文件夹中。

能够看到登录屏幕,但无法导航到应用程序路线 这是我使用路由器的应用程序流程。

App.tsx

<Fragment >
        <ToastContainer position='bottom-right'/>
        
        <Provider store={store}>
        <OidcProvider store={store} userManager={userManagerObj}>
         <Router history={history} >
          <Route exact path='/' component={HomePage}/>
          <AppPreview/>
          <Route path='/checkUser' component={VerifyUser}/>
          <Route path='/callback' component={CallbackPage}/>
         </Router>
        </OidcProvider>
        </Provider>
    </Fragment>

这是AppPreview.tsx,我在其中根据路线切换组件

<Route path={'/(.+)'} render={() => (
          <Fragment>
            <div id="outer-container">
              <HeaderInfo/> 
              <main id="page-wrap">
                <NavBar />
               <div className="display-info">
                <Switch>
                  <Route exact path='/welcome'  component={WelcomePage} />
                  <Route exact path='/param' component={ParamMgmt} />
                  <Route exact path='/test'  component={Test}/>
                  <Route component={NotFound} />
                </Switch>
                </div>
              </main>                
            </div>  
          </Fragment>          
          )}
        />

Navbar.tsx具有如下导航链接

<Menu pageWrapId={ "page-wrap" } outerContainerId={ "outer-container" } isOpen={menuOpen}
        onStateChange={state => handleStateChange(state)}>
            <Link id="home" className="menu-item" to="/welcome" onClick={() => {closeMenu()}} >
                <Icon name="home" size="large" />Home</Link>                
            <Link id="parameter" className="menu-item" to="/param" onClick={() => {closeMenu()}}>
                <Icon name="setting" size="large"/>Param</Link>
            <Link id="Test" className="menu-item" to="/test" onClick={() => {closeMenu()}}>
                <Icon name="setting" size="large"/>Test</Link>
        </Menu>

最后,在Cloud Env中调用时,可以看到登录屏幕,但/ welcome,/ param,/ test路由路径为空

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...