我的React应用程序在生产环境中的路径有问题,它们只适用于Chrome。在所有其他浏览器中,路由始终重定向到LoginPage组件。我不明白为什么在开发环境中路由适用于所有浏览器。
我的路线是这样的:
<Switch>
<GuestRoute
location={location}
path="/signup"
exact
component={SignupPage}
/>
<GuestRoute
location={location}
path="/forgot_password"
exact
component={ForgotPasswordPage}
/>
<GuestRoute
location={location}
path="/reset_password/:token"
exact
component={ResetPasswordPage}
/>
<UserRoute
location={location}
path="/"
exact
component={DashboardPage}
/>
<GuestRoute location={location} component={LoginPage} />
</Switch>
其中三个组件使用Redux,所以我尝试使用包装器&#34; withRouter&#34;来解决问题。根据{{3}}。但没有奏效。
知道为什么会这样吗?
答案 0 :(得分:0)
我的问题的解决方案是改变提供静态文件的方式。
在:
app.use(express.static(`${__dirname}/build`));
app.get('*', function(req, res) {
res.redirect('/');
});
后:
app.use(express.static(path.join(__dirname, 'build')));
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
感谢Michel,他帮助我找到了我的错误。