首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接到相同域上的非Gatsby html页面,而不是Gatsby重定向到404

链接到相同域上的非Gatsby html页面,而不是Gatsby重定向到404
EN

Stack Overflow用户
提问于 2019-11-02 05:40:14
回答 2查看 411关注 0票数 1

我有个Gatsby博客。我正在写一组教程帖子,用于在create-react-app中编写游戏。在我的Gatsby帖子标记中,我试图链接到同一服务器上该帖子的演示react应用程序的构建版本,但Gatsby总是给我一个404页面。

我正在使用nginx。由gatsby build产生的公用文件夹中的所有内容都位于我的All服务器的var/www/html目录中。

create-react-app构建位于var/www/html/tutorials/01/内部,并且有自己的index.html文件。

在我的标记中,我尝试了这两种格式的链接:view the code [here](/tutorials/01/)view the code [here](//165.227.94.249/tutorials/01/)

如果你在浏览器的//165.227.94.249/ post /tutorial-01上查看这篇文章并点击链接,它会带你到//165.227.94.249/tutorials/01/,但会显示一个404页面。但是,如果您在相同的URL刷新浏览器,则将提供有效的react应用程序。

如何防止Gatsby覆盖此请求并显示404页面,而不是让web服务器提供存在于该url的index.html文件?

EN

回答 2

Stack Overflow用户

发布于 2019-11-04 12:41:04

生成时,标记中的内部链接会自动转换为Gatsby链接。Gatsby Link仅适用于来自Gatsby构建的内部资源。您的create-react-app应用程序在同一台服务器上,但在Gatsby构建过程之外。

documentation

此组件仅用于指向由Gatsby处理的页面的链接。对于指向其他域上的页面或当前Gatsby站点未处理的同一域上的页面的链接,请使用normal元素。

我认为在标记中使用完整的网址(包括https )可能是成功的:https://165.227.94.249/tutorials/01/

PS:当我尝试的时候,我从你的服务器得到一个连接超时。

票数 0
EN

Stack Overflow用户

发布于 2019-11-11 17:35:13

您应该尝试禁用gatsby-plugin-catch-links。如果这不起作用,请尝试捕获onClick事件,取消该事件并触发您自己的重定向。

代码语言:javascript
复制
function processExternalSameDomainLink(event) {
  window.location.href = url

  event.stopPropagation()
  event.preventDefault()
  return false
}

<a href={newTo} onClick={processExternalSameDomainLink}>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58666226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档