首页 > 解决方案 > 盖茨比没有建造,但在开发中工作正常

问题描述

我正在使用 Gatysby 和 prismic 创建一个站点。一切似乎都在开发中运行良好。但是当我尝试构建时,我得到一个“未定义”的错误。

Building static HTML failed for path "/preview/page"
  48 | const Page = (props) => {
  49 |  console.log(props);
> 50 |  const pageTitle = props.data.prismic.allPages.edges[0].node.page_title;
     |                                                         ^
  51 |  const content = props.data.prismic.allPages.edges[0].node.page_content;
  52 |  return (
  53 |          <>


  WebpackError: TypeError: Cannot read property 'node' of undefined

我不确定 /preview/ 来自哪里,因为那不是我在配置文件中指定的路径,如果我正确理解文档,显然默认情况下应该禁用预览 -文档

无论如何,我尝试将它们设置为 false,但没有运气。

这是我的配置 atm

        {
            resolve : 'gatsby-source-prismic-graphql',
            options : {
                repositoryName : 'XXXXX',
                pages          : [
                    {
                        type      : 'Page',
                        match     : '/:uid',
                        path      : '/',
                        component : require.resolve('./src/templates/page.js')
                    },
                    {
                        type      : 'Blog_post',
                        match     : '/blog/:uid',
                        path      : '/blog/',
                        component : require.resolve('./src/templates/blogPost.js')
                    }
                ]
            }
        },

任何帮助将不胜感激。

标签: javascriptreactjsgatsbyprismic.io

解决方案


我认为这里的问题是您需要对您的内容添加验证检查。您正在查看的文档页面需要更新。我会调查的。

通过添加内容的验证检查,可以无错误地生成预览路由。此页面说明如何设置验证检查: https ://prismic.io/docs/gatsby/rendering/retrieve-the-document-object#21_0-adding-a-validation-check


推荐阅读