Reactjs 在生产版本上重定向时,react应用程序显示空页

Reactjs 在生产版本上重定向时,react应用程序显示空页,reactjs,nginx,react-router,react-router-dom,Reactjs,Nginx,React Router,React Router Dom,我有一个reactJs应用程序,它运行在一个有nginx的服务器上。 问题是,当我尝试从主页(“/”)重定向到/UserPanel或/AdminPanel时 url改变了,但它显示了一个空页面,但是当我重新加载页面时,它工作正常。 这个问题不会发生在我的本地主机中,但会发生在生产构建中 这是我的nginx配置: listen 80 default_server; listen [::]:80 default_server; roo

我有一个reactJs应用程序,它运行在一个有nginx的服务器上。 问题是,当我尝试从主页(“/”)重定向到/UserPanel或/AdminPanel时 url改变了,但它显示了一个空页面,但是当我重新加载页面时,它工作正常。 这个问题不会发生在我的本地主机中,但会发生在生产构建中

这是我的nginx配置:

        listen 80 default_server;
        listen [::]:80 default_server;

       
        root /var/app/html;

        index index.html index.htm;

        location / {
                try_files $uri $uri/ /index.html?$args;
        }

这是我的主要应用程序类:

import { Route, Router, Switch } from "react-router-dom";

class App extends Component {
  render() {
    return (
      <Provider store={store}>
        <Snackbar />
        <Router history={hist}>
          <MuiThemeProvider theme={theme}>
            <CssBaseline />
            <GlobalStyles />
            <Pace color={theme.palette.secondary.main} />
            <Suspense fallback={<Fragment />}>
              <Switch>
                <PrivateRoute
                  path="/AdminPanel"
                  component={AdminPanel}
                />
                <PrivateRoute
                  path="/UserPanel"
                  component={UserPanel}
                />
                <Route exact path="/" component={HomePage} />
              </Switch>
            </Suspense>
          </MuiThemeProvider>
        </Router>
      </Provider>
    );
  }
}
从“react Router dom”导入{Route,Router,Switch};
类应用程序扩展组件{
render(){
返回(
);
}
}
我从主页重定向如下:

const redirect = () => {
    let url = isAdmin
      ? URLConstant.ADMIN_PANEL
      : isUser
      ? URLConstant.USER_PANEL
      : null;
    if (url) {
      return (
        <Redirect
          push
          to={{
            pathname: url,
            state: {}
          }}
        />
      );
    }
  };
const redirect=()=>{
让url=isAdmin
?urlcontent.ADMIN_面板
:isUser
?urlcontent.USER_面板
:null;
如果(url){
返回(
);
}
};
我正在使用“react router”:“^5.2.0”,“react router dom”:“^5.2.0”,“history”:“latest”

我做错了什么?我应该在.env中添加URL以外的内容吗? 提前感谢。

使用
主页“:”,
在您的
包中。json

降级您的“历史记录”版本或删除它,因为“react router dom”会自动添加正确的版本

关于这一点,已经有一个悬而未决的问题:

这表明React路由器(主要是
历史记录。推送
重定向
)在最新(v5)版本的历史记录中无法正常工作。但它在历史的v4上运行得非常完美

例如,这应该起作用:

    "history": "^4.10.1",
    "react-router-dom": "^5.2.0",

@我编辑这个问题是为了提供你提到的信息。Thanks@AjeetShah是的,我已经在package.json(“history”:“latest”)中导入了历史。@AjeetShah我正在使用“react Router dom”中的路由器。我不知道Nginx confit,但我认为这就是问题所在。您想让所有请求都转到index.HTML,所以请运行react代码。@AjeetShah谢谢!!这就解决了问题。请将您的评论作为答案发布,以便我将其标记为正确答案。