我需要做一个简单的客户端重定向,该操作从Netlify托管的我的Gatsby网站上的页面重定向到外部URL。它在本地运行良好,但部署后似乎没有任何效果。 Gatsby的本机createRedirect-功能似乎也有一个错误,因此它不允许重定向到外部URL。
我已经在componentDidMount
,render
以及循环(setInterval
)函数调用的回调中尝试了以下三种方法。我还尝试过劫持指向重定向页面并执行window.open(url)
的链接的点击,但是部署时涉及window
的内容似乎没有任何作用。有什么想法吗?
window.location.replace(url)
window.location.href = url
window.location = url
答案 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上使用了预览分支进行了测试,并且对我有用。
如果您有特定的错误消息,可以将其发布为新问题。