没有硬编码的 Gatsby pathPrefix

Jef*_*f M 6 gatsby

路径前缀的 Gatsby 文档显示我可以定义类似的东西pathPrefix: "/blog",并且确实我尝试过它并且它起作用了。但是,我宁愿不对应用程序所在的路径进行硬编码。我希望能够将构建部署到多个路径,并让它在所有路径中都能正常工作。我希望有一种方法可以使构建从任何任意路径工作。在那儿?

小智 1

您可以使用gatsby-link来帮助您。它的功能类似于 React-Router 的Link组件,但可以帮助您解决路径前缀问题。例如,如果您设置pathPrefix: "/myBlog"...

import Link from 'gatsby-link'

/* later down in the code... */

<nav>
  <Link to='/about'>About The Blog</Link>
</nav>
Run Code Online (Sandbox Code Playgroud)

这会输出:

<a href="/myBlog/about">About The Blog</a>
Run Code Online (Sandbox Code Playgroud)

  • 问题是我不想在源代码中对 myBlog _anywhere_ 进行硬编码,甚至在配置文件中也不想。从概念上讲,我希望 pathPrefix 为“。” -- 也就是说,相对于应用程序的路径,以便应用程序可以部署在任意路径上并且仍然可以工作。 (3认同)
  • 这不仅仅是链接的问题。它还涉及加载 JS 文件本身等资源。 (2认同)