Gatsby 禁用客户端路由

Gatsby 禁用客户端路由,gatsby,Gatsby,我有一个静态页面,由Go应用程序根据请求的路径呈现(带有附加数据)。 这可以正常工作,但是React无法加载,因为Gatsby无法根据给定路径找到page-data.json 我已经尝试使用“@wardpeet/gatsby plugin static site”插件禁用客户端路由,但是问题仍然存在 我使用默认的gatsby模板,修改了html.js,没有任何或标记 我想完全禁用客户端路由(并删除app-data.json/page-data.json文件),或者至少将任何请求路由到同一个文件,

我有一个静态页面,由Go应用程序根据请求的路径呈现(带有附加数据)。 这可以正常工作,但是React无法加载,因为Gatsby无法根据给定路径找到page-data.json

我已经尝试使用“@wardpeet/gatsby plugin static site”插件禁用客户端路由,但是问题仍然存在

我使用默认的gatsby模板,修改了html.js,没有任何或标记

我想完全禁用客户端路由(并删除app-data.json/page-data.json文件),或者至少将任何请求路由到同一个文件,这样无论域路径如何,我都可以部署站点


提前感谢

我不确定我是否正确理解了你的情况,但我总结了以下几点:

  • 一旦在浏览器中运行,盖茨比就找不到你的
    app data.json
    page data.json
    文件
  • 您的盖茨比网站似乎是通过非根路径提供服务的(例如
    www.example.com/some/more/path/(盖茨比网站)
如果这就是它的全部内容,那么当你的盖茨比网站建立时,你想做的就是简单地去做。简而言之,您需要做的是:

  • 在站点的
    gatsby config.js
    中,导出名为“pathPrefix”的属性,该属性指定站点将从中获得服务的路径。例如:
  • 构建站点时,将标志
    --前缀路径
    传递给
    gatsby
    命令。例如:
  • 这两个步骤都是必需的,否则,您将看不到任何差异。完成此操作后,客户端Gatsby应用程序应该能够正确获取所有必需的文件


    您不需要禁用客户端路由。客户端路由几乎总是一件好事,因为它使页面之间的导航大大加快。您应该删除该插件。

    我不确定我是否正确理解您所说的“禁用客户端路由”的含义。我已经看过了你提到的插件,但是因为它没有帮助你,也许问题不在于你认为它在哪里…让我们把这一切都看一遍。。。你能解释一下你的盖茨比网站和围棋申请之间的关系吗?Go程序只是为盖茨比以前生成的静态文件提供服务吗?或者Go程序是否会动态启动Gatsby进程(“基于给定路径”…你的意思是什么?)?然后,你说要删除app-data.json和page-data.json文件。为什么?你的意思是说,一旦进入客户端,你希望你的站点完全是纯HTML/CSS(也就是说,客户端没有反应)?或者你这么说仅仅是因为你得到了与这些文件相关的错误,并且它们对于你的用例来说似乎是“无用的”?对不起,go应用程序只与呈现到应用程序中的模板数据相关。我想要一个纯HTML/CSS/JS React应用程序,但我不知道它的部署路径。。现在,盖茨比试图加载页面/app-data.json,但没有找到它,这完全禁用了它。不幸的是,这不起作用-所有路径都有前缀,但是页面数据仍然没有找到(路径本身只是前缀,但如果路径是“/test1/test2”,则该位置仍然需要app-data.json(+前缀),而不是固定路径:(由于网站呈现目录的内容(例如),因此不需要客户端路由,因为服务器仍会再次呈现重定向。我之所以要使用react/gatsby,唯一的原因是依赖于现有的react组件(例如容器高度的计算等)
    module.exports = {
      pathPrefix: `/blog`,
    }
    
    gatsby build --prefix-paths