Magnolia CMS:从 JCR 配置中引用 YAML 配置
Posted
技术标签:
【中文标题】Magnolia CMS:从 JCR 配置中引用 YAML 配置【英文标题】:Magnolia CMS: reference YAML config from JCR config 【发布时间】:2017-02-07 13:04:57 【问题描述】:我通过 JCR 配置完成了我的 page configuration
。
我有 component configuration
使用 YAML 配置。
我想让这个组件可用于 JCR 中配置的模板。
组件配置位于:/project-website-module/src/main/resources/website-module/components/linkList/linkList.yaml
我尝试以不同的方式在模板的组件可用性中引用它:
website-module:components/linkList/linkList
website-module:components/linkList/linkList.yaml
/website-module/components/linkList/linkList
/website-module/components/linkList/linkList.yaml
src/main/resources/website-module/components/linkList/linkList
src/main/resources/website-module/components/linkList/linkList.yaml
但没有运气,我不断收到错误:
"Caused by: info.magnolia.config.registry.Registry$NoSuchDefinitionException: <pathToComponentConfiguration>"
【问题讨论】:
【参考方案1】:组件配置位于:
/project-website-module/src/main/resources/website-module/dialogs/linkList/linkList.yaml
...那是对话框配置,组件配置yaml在哪里?
组件配置的路径不是对话框配置是您在引用组件时需要使用的路径。并且该配置文件需要在物理上位于src/main/resources/website-module/templates/components/...
,然后引用是website-module:components/...
。
另外,如果你已经为模块指定了模块描述符,模块描述符中的名称最好匹配website-module
。
【讨论】:
是的,你是对的。我在我的问题中犯了一个错误。我现在已经更正了它并参考 component 配置的路径【参考方案2】:我不得不将YAML
组件配置移到下面(注意添加了templates
目录):
/project-website-module/src/main/resources/website-module/templates
在我的情况下,将linkList.yaml
移到:
/project-website-module/src/main/resources/website-module/templates/components/linkList/linkList.yaml
然后在JCR
配置中,使用以下路径:
website-module:components/linkList/linkList
注意:同样,YAML
对话框配置必须在:
/project-website-module/src/main/resources/website-module/dialogs
【讨论】:
以上是关于Magnolia CMS:从 JCR 配置中引用 YAML 配置的主要内容,如果未能解决你的问题,请参考以下文章
由于违反约束,节点 setProperty 在 Magnolia CMS 中给出了 RepositoryException
Magnolia defaultAction 与从操作栏中单击实际操作在获取 JCR 项目方面的区别
Magnolia CMS Content App 多值和复合字段错误