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

添加Projection后Apostrophe中piece._page._url无法生成链接问题

问题根源分析

你添加的projection配置只限定了focuslink条目本身的字段(slug、title等),但没有包含关联的_page对象所需的数据。Apostrophe CMS在使用projection时,不会自动加载joinByOne关联的其他文档,必须显式指定要获取关联对象的哪些字段,否则模板里的piece._page会是不完整的(甚至为undefined),自然无法读取_page._url。

解决方案

修改app.js中supernode-focuslinks-widgets的projection配置,加入_page及其需要的_url字段:

'supernode-focuslinks': {},
'supernode-focuslinks-widgets': {
  extend: 'apostrophe-pieces-widgets',
  filters: {
    projection: {
      slug: 1,
      title: 1,
      type: 1,
      tags: 1,
      // 显式请求关联页面的_url字段
      _page: {
        _url: 1
      }
    }
  }
},
额外说明

如果之后你的模板需要用到关联页面的其他字段(比如页面标题title),可以在_page的配置里添加对应的字段:

_page: {
  _url: 1,
  title: 1
}

这样就能在模板中正常使用piece._page.title这类数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:49:05