首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CMS后端在gatsby中编程创建页面?

问如何使用CMS后端在gatsby中编程创建页面?
EN

Stack Overflow用户
提问于 2020-06-24 15:40:25
回答 1查看 262关注 0票数 0

我有一个Django CMS作为我的后端应用程序。我正在尝试在我的Gatsby前端站点中动态创建页面。我的Django应用程序是使用Graphene通过GraphQL公开的。但是我不能从后端CMS查询插件,也不能使用gatsby-node.js创建页面。在后端应用程序中创建页面时,如何创建页面?

我的想法是

代码语言:javascript
复制
//gatsby-node.js

exports.createPages = ({ graphql, actions }) => {
    const pages = graphql`
        {
            blogPages{
                edges{
                    node{
                        slug     // this slug supposed to come from the backend CMS (Atleast i think)
                    }
                }
            }
        }
    `;

    const { createPage } = actions
    const blogTemplate = path.resolve(`src/templates/blogTemplate.js`);

    pages.blogPages.edges.forEach(edge => {   //this should help to create dynamic pages - slug coming from backend CMS
      const slug = edge.node.blogpage.slug;
      createPage({
        path: slug,
        component: blogTemplate
    })  
  })
}
EN

回答 1

Stack Overflow用户

发布于 2020-06-25 02:20:46

在评论中已经说过了,但总结一下:由于Gatsby是一个静态站点生成器,您不能在运行时动态添加页面。每个页面对应于它自己的html文件,需要在您的its服务器上创建该文件。这不是你可以在运行时做的事情。

您可以做的是设置一个持续集成工作流,在此工作流中您可以在云中的某个位置运行构建。当您在Django中进行更改时触发它,或者定期(每小时/每天)运行它来更新站点。

如果运行重建对您的用例不起作用,那么您需要考虑一个完全不同的架构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62550087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档