我需要从 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(使用前将#替换为@)