javascript - 如何正确配置 gatsby-source-prismic-graphql 预览功能?
问题描述
我正在使用gatsby-source-prismic-graphql插件,并且正在尝试正确配置它的 Prismic 预览功能。
预期功能
从 Prismic CMS 的编辑器对已发布的文档进行更改,保存,然后单击眼球预览按钮。我想重定向到我本地的 Gatsby + Prismic 实例,重定向到所需的页面,然后查看我所做的更改。
实际发生
了什么
我在 Prismic CMS 上进行了更改,单击预览,然后被重定向到localhost:8000/
而不是我想要预览的所需页面。
按照Prismic 的故障排除文章部分“你能在浏览器中看到预览 cookie 吗?” 我能够看到我所做的预览更改,表明“问题出在代码中”。
我的配置linkResolver.js
是否gatsby-config.js
正确?
src/utils/linkResolver.js
exports.linkResolver = function linkResolver(doc) {
// Route for customers page
if (doc.type === 'Customers') {
return "/" + doc.uid;
}
// Homepage route fallback
return '/'
}
相关部分 gatsby-config.js
{
resolve: 'gatsby-source-prismic-graphql',
options: {
repositoryName: 'my-repo', // (REQUIRED, replace with your own)
accessToken: `${process.env.API_KEY}`, // (optional API access token)
path: '/preview', // (optional preview path. Default: /preview)
previews: true, // (optional, activated Previews. Default: false)
pages: [
{ // (optional, builds pages dynamically)
type: 'Customers', // TypeName from prismic
match: '/customers', // Pages will be generated under this pattern
path: '/customers-preview', // Placeholder route for previews
component: require.resolve('./src/templates/customers.js'),
},
],
}
}
棱镜预览设置
这是我的棱镜预览设置的图片。
域:localhost:8000
链接解析器:/preview
解决方案
你能在这里发布你传递linkResolver的代码吗,'doc.type'可能返回一个未定义的,因为在graphQL中你需要传递包含页面UID的_meta。
您还可以查看有关如何配置 linkResolver 的文档。
所以如果你的代码是这样的:
<a href={Link.url(document.generic_link, linkResolver)}>Go to page</a>
你的 GraphQL 查询是这样的
generic_link {
... on PRISMIC_Linked_page {
_linkType
_meta {
uid
}
}
}
那么你的 linkResolver 应该是这样的:
linkResolver(doc) {
if (doc.type === 'page') {
return `/${doc._meta.uid}`
}
return '/'
}
推荐阅读
- html - Base64 图像未在 IE11 中显示
- kubernetes - 如何在 Kubernetes 中删除处于 Unknown 状态的 Pod?
- sql - 优化大数据运行缓慢的sql查询
- actions-on-google - 在我的谷歌操作中添加支持的语言时出错
- shopify - Shopify 液体 如何隐藏缺货产品,直到点击集合页面上的元素?
- authentication - Symfony 4.2:防火墙配置不加载内存用户提供程序
- javascript - 使用array.prototype时如何访问数组
- android - Intent.setType() 对 android 的 Intent 选择器的影响
- python - PyQT GUI 与不同线程中的 SQLAlchemy 查询
- javascript - 将液体分配给javascript变量