带有Netlify重定向的Gatsby客户端路由
我有一个盖茨比计划,我正在努力实现以下目标带有Netlify重定向的Gatsby客户端路由,gatsby,server-side-rendering,netlify,Gatsby,Server Side Rendering,Netlify,我有一个盖茨比计划,我正在努力实现以下目标 当用户导航到/movies时,它将显示一个电影列表 当用户单击列表中的项目时,它将导航到/movies/:movieId,以显示该电影的详细信息 以下是我在Netlify上遇到的问题 如果用户直接访问/movies/:movieId,或进行硬重新加载。然后,在页面实际加载之前会出现404闪烁 以下是我尝试的解决方案: 安装gatsby插件netlify以处理\u重定向 然而,现在不是404的flash,而是/movies页面的flash 这就是我想要实
/movies
时,它将显示一个电影列表/movies/:movieId
,以显示该电影的详细信息/movies/:movieId
,或进行硬重新加载。然后,在页面实际加载之前会出现404闪烁gatsby插件netlify
以处理\u重定向
/movies
页面的flash/movies/:movieId
页面都有一个加载状态,因此我想在用户直接访问路由时显示该状态/loading
,并在netlify中设置以下重定向规则
/movies/* /loading 200
但我也不希望用户能够访问
/loading
页面。有什么方法可以让我这样做吗?您需要调试这个问题,因为进入现有页面时出现404页面的flash并不常见
关于尝试的解决方案:gatsby plugin netlify
通过创建自定义的\u redirects
文件来处理重定向,但是,如果您想添加自己的或覆盖它们,则需要在根目录中创建一个\u redirects
文件并部署它。只需添加:
/movies/* /movies
请注意,重定向的默认状态为301
。您代码的200
是一个毫无意义的成功。你可以省略它。您可以查看有关的更多信息
更清洁的解决方案是设置一个处理加载组件的React状态。默认情况下,它将被设置为
true
(并且可见),一旦加载页面,您就可以false
加载它。这样,您就不会创建无用的路由/页面,而是在同一页面上处理加载(改进SEO)。在那里,如果加载状态设置为true,您可以在X秒内手动重定向用户来玩它感谢您的响应。/movies
页面和/movies/:movieId
页面具有不同的布局。当用户直接访问该url时,是否有方法显示单个电影页面的加载状态?我将无法使用createPage
操作,因为我不知道路径
。使用createPage
方法的想法就是为任何内容创建动态路径,而不考虑路径。您可以设置加载组件,并根据上一页的不同将其删除或保留(如果需要,还可以重定向)<代码>和位置
允许您执行此操作。