Reactjs 在生产版本上重定向时,react应用程序显示空页
我有一个reactJs应用程序,它运行在一个有nginx的服务器上。 问题是,当我尝试从主页(“/”)重定向到/UserPanel或/AdminPanel时 url改变了,但它显示了一个空页面,但是当我重新加载页面时,它工作正常。 这个问题不会发生在我的本地主机中,但会发生在生产构建中 这是我的nginx配置: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
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谢谢!!这就解决了问题。请将您的评论作为答案发布,以便我将其标记为正确答案。