Gatsby 客户端重定向到外部 URL 不适用于 Netlify

osk*_*are 2 javascript reactjs gatsby netlify

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

我已经尝试了以下三种方法componentDidMountrender以及来自重复 ( setInterval) 函数调用的回调。我还尝试劫持指向重定向页面的链接的点击并执行window.open(url),但window在部署时似乎没有任何涉及的工作。有任何想法吗?

window.location.replace(url)
window.location.href = url
window.location = url
Run Code Online (Sandbox Code Playgroud)

chm*_*mac 5

您想从/foo您网站上的网址重定向到某个外部网址,例如domain.tld/bar,对吗?如果是这样,并且您正在使用 Netlify,那么您可能想要使用Netlify_redirects文件

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

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

在开发过程中有一些怪癖,但这应该适用于生产。我在 Netlify 上使用预览分支进行了测试,它对我有用。

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