问题描述
我正在尝试为Web应用程序实现一种常见的用户体验,在这种体验中,经过身份验证的用户会自动从首页重定向到该应用程序。
例如,在浏览器中输入https://example.com/
时,如果我未登录,则会看到主页。但是,如果我已登录,则会自动重定向到https://example.com/app/
我目前在我的pages/index.js
中有此密码:
if (auth.user) return <Redirect noThrow from="/" to="/app" />;
其中Redirect
来自@ reach / router。
但是,当我这样做时,未经身份验证的主页会在重定向开始之前短暂闪烁。有没有办法做到这一点,例如:
谢谢!
解决方法
您需要服务器使用301-303响应代码和指向所需URL(例如Location
)的/app/
标头来响应对主页的请求。
遗憾的是,Gatsby不会运行任何类型的服务器来响应生产中的请求,因此,如果没有一些重要的技巧(例如默认情况下隐藏所有内容),就无法单独使用Gatsby来解决此问题被Google索引。