You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Drupal中/home路径的首页设置为Gatsby的根路径/

解决Gatsby与Drupal首页路径不匹配的问题

先排查CreatePage API的常见问题

你之前的配置没生效,大概率是这几个原因:

  • 没精准匹配到Drupal中路径为/home的页面数据
  • 代码语法有误,比如路径赋值逻辑写错
  • 修改gatsby-node.js后没重启Gatsby开发服务(这个文件的修改必须重启才会生效)

正确的CreatePage配置示例

在gatsby-node.js里遍历落地页数据时,判断当前页面是否是Drupal的首页,若是则将其路径设为Gatsby的根路径/,其他页面保持原有路径:

exports.createPages = async ({ graphql, actions }) => {
  const { createPage } = actions;

  // 查询Drupal的落地页数据
  const result = await graphql(`
    query {
      allDrupalLandingPage {
        nodes {
          path {
            alias
          }
          id
        }
      }
    }
  `);

  // 遍历落地页创建页面
  result.data.allDrupalLandingPage.nodes.forEach(node => {
    let pagePath = node.path.alias;
    // 匹配Drupal首页路径,替换为Gatsby根路径
    if (pagePath === '/home') {
      pagePath = '/';
    }

    createPage({
      path: pagePath,
      component: require.resolve('./src/templates/landing-page.js'), // 替换为你的落地页模板路径
      context: {
        id: node.id,
      },
    });
  });
};

额外注意事项

  • 确认GraphQL查询的字段是否正确,不同Drupal插件版本可能字段名有差异,比如有些场景下路径字段直接是alias而非path.alias
  • 如果之前已经生成过/home页面,执行gatsby clean清理缓存后再重启服务,避免旧缓存影响
  • 检查落地页模板逻辑,确保没有强制覆盖页面路径的代码

内容的提问来源于stack exchange,提问作者iyyappan govind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:52:02