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

时间:2018-08-01 15:02:01

标签: 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

1 个答案:

答案 0 :(得分:3)

您想从站点上的/foo这样的URL重定向到domain.tld/bar这样的外部URL,是正确的吗?如果是这样,并且您正在使用Netlify,则可能要使用Netlify _redirects file

但是,如果您确实想在盖茨比内部执行此操作,则应该可以使用componentDidMount()钩子来调用window.location.replace()。我刚刚在v2网站上进行了测试,并且可以正常工作。

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

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

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