Gatsby 客户端重定向到外部 URL 在 Netlify 上不起作用

2024-04-03

我需要从 Netlify 上托管的 Gatsby 站点上的页面执行简单的客户端重定向到外部 URL。它在本地工作正常,但部署后似乎没有任何作用。 Gatsby 的本机 createRedirect 功能似乎也存在一个错误,因此它不允许重定向到外部 URL。

我尝试过以下三种方法componentDidMount, in render以及来自重复出现的回调 (setInterval) 函数调用。我还尝试劫持指向重定向页面的链接的点击并执行window.open(url),但不涉及window部署后似乎正在工作。有任何想法吗?

window.location.replace(url)
window.location.href = url
window.location = url

你想从像这样的网址重定向/foo在您的网站上访问一些外部 URL,例如domain.tld/bar, 那是对的吗?如果是这样,并且您正在使用 Netlify,那么您可能想要使用Netlify _redirects file https://www.netlify.com/docs/redirects/.

但是,如果您确实想在 Gatsby 内部执行此操作,您应该能够使用componentDidMount()挂机调用window.location.replace()。我刚刚在我们的 v2 网站上进行了测试,效果很好。

class About extends React.Component {
  componentDidMount() {
    window.location.replace("https://www.gatsbycentral.com/");
  }

开发过程中存在一些怪癖,但这应该可以在生产中发挥作用。我在 Netlify 上的预览分支上进行了测试,它对我有用。

如果您有特定的错误消息,您可以将其作为新问题发布。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gatsby 客户端重定向到外部 URL 在 Netlify 上不起作用 的相关文章

随机推荐