javascript - gatsby 链接正在使用当前地址而不是使用根地址
问题描述
我想做一些分页,但我不知道为什么我的 gatsby 链接会自动添加当前地址,然后添加to={}
.
想象它是这样的:
我想page2
从page1
. 所以,我将使用Link to={page1}
链接应该是 localhost:8000/page1 而不是我得到的是 localhost:8000/page2/page1
这是实际的代码。在pagetemplate.js
:
export default function Program({ pageContext, data }) {
const post = data.cockpitProgram
const { previous, next } = pageContext
{previous && (
<Link to={previous.title.slug} rel="prev"
// className={ navLinkPrev}
>
<div
// className={ navPrev}
>
<h3
style={{margin:0,
fontSize:"1em"}}
>
{previous.title.value}
</h3>
</div>
<div
// className={ navMobilePrev}
>
<FontAwesomeIcon icon="chevron-circle-left"></FontAwesomeIcon>
</div>
</Link>
)}
在gatsby-node.js
:
const pages = res.data.allCockpitProgram.edges
pages.forEach(( post,index ) => {
createPage({
path: `/${post.node.title.slug}/`,
component: program,
context: {
slug: post.node.title.slug,
previous: index === 0 ? null : pages[index - 1].node,
next: index === (pages.length - 1) ? null : pages[index + 1].node,
},
});
})
解决方案
如果您没有/
在开头设置斜杠 ( ),则它将路径作为相对路径。在示例中:Link to={page1}
应该是Link to={/page1}
.
您pageContext
似乎工作正常,您正在获取上一页和下一页,但是,您没有正确设置<Link>
's 的目的地。
因此,在提供的代码中使用<Link to={`/${previous.title.slug}`} rel="prev">
.
推荐阅读
- c# - 如何并行运行 SpecFlow 测试
- android - Xamarin Forms Android 错误 CS0117:“Resource.Drawable”不包含“....”的定义
- c# - NullReferenceException:对象引用未设置为对象的实例(在我的 PlayerDeath 脚本上)
- react-native - 如何在函数 React Native 中导航
- laravel - 从 Web 服务器在 laravel 中发送电子邮件
- firebase - 如何在 Firebase Firestore 数据库中正确定义 ID 和 DateTime 字段?
- go - 如何为每两个单词添加符号
- json.net - StringEnumConverter 作为属性工作,但不是全局的
- image - 如何在 Flutter 中对两个图像进行异或运算
- c++ - 如何制作更复杂的 wxWidgets 保存系统