我正在使用gatsby源-棱镜-图形插件,并试图适当地配置它的棱镜预览功能。
预期功能
在一个已经发布的文档上,我做了一个修改,保存,然后点击眼球预览按钮。我希望被重定向到我的本地Gatsby +棱镜实例,重定向到所需的页面,并查看我所做的更改。
到底发生了什么,
我改变了棱镜CMS,点击预览,然后被重定向到localhost:8000/
,而不是我想要预览的页面。
下面的百里麦疑难解答文章部分是“您能在浏览器中看到预览cookie吗?”我能够看到我所做的预览更改,表明“问题在代码中”。
是my gatsby-config.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
发布于 2020-06-04 06:10:02
您可以在这里发布传递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 '/'
}
https://stackoverflow.com/questions/62165553
复制相似问题