我正在开发一个盖茨比的网站。用户会收到一封电子邮件,其中包含包含一次性令牌的链接,如下所示:
https://www.example.com/approval?token=hIPdI7oSw6KV6k8ttsXG3XAHmIqExyB01YkChxiLR9leksJ67iRme6yyxfBztz3Z
这应该将它们带到approval
页面并提供token
作为参数。
它在开发版本中工作正常,但在生产版本中,url 中缺少参数,用户只是被定向到 https://www.example.com/approval
有谁知道为什么 Gatsby 可能会在生产版本中重写没有参数的 url,有没有办法防止这种情况发生?
编辑:此站点托管在CloudFront上,并且我们启用了查询参数的转发。可能在另一个层面上发生了一些重定向?
原来是盖茨比/CloudFront的疯狂:https://github.com/gatsbyjs/gatsby/issues/20139
盖茨比开发服务器无助地在?前面注入了一个/
。CloudFront 上的生产版本没有这样做,从而触发了重定向。CloudFront 需要格式为/?
的查询字符串 - 以供将来参考!