Aem 当前样式。<;propertyName>;在cq5 publisher中返回null,这在author中工作得非常好

Aem 当前样式。<;propertyName>;在cq5 publisher中返回null,这在author中工作得非常好,aem,sightly,Aem,Sightly,我使用sightly访问组件的设计对话框属性。 差不多 <span data-sly-test="${currentStyle.delimiter}">${currentStyle.delimiter}</span> ${currentStyle.delimiter} 但我得到的只是一个空字符串 我试图通过尝试以下方法来解决这个问题 激活设计节点 删除页面并创建新页面 删除组件并在页面上再次拖放组件 我检查了currentDesign的JSON输出,我试图访问的所有值

我使用sightly访问组件的设计对话框属性。 差不多

<span data-sly-test="${currentStyle.delimiter}">${currentStyle.delimiter}</span>
${currentStyle.delimiter}
但我得到的只是一个空字符串

我试图通过尝试以下方法来解决这个问题

  • 激活设计节点
  • 删除页面并创建新页面
  • 删除组件并在页面上再次拖放组件
  • 我检查了currentDesign的JSON输出,我试图访问的所有值都在那里可用
  • 你有两个选择

  • 在预览/发布模式下,通过 currentDesign.getJSON(),解析从中返回的值,然后 输入想要从Json对象获得的值
  • 您可以通过从模板中删除一行代码来解决此问题 head.js。如果您从其中一个“/lib”继承任何模板 (叹为观止)页面中,head.js将在下面的代码行中显示 因此,您可以在模板中覆盖head.js并将其注释掉 下面是代码行
  • if(wcmmode.disabled){
    request.setAttribute(Packages.com.day.cq.wcm.api.components.ComponentContext)。
    绕过\u组件\u处理\u上的\u包括\u属性,true);
    }


    把这句话说出来,一切都恢复正常了

    您是否检查了作者和发布者是否指向/获取了相同的设计?我如何确保这一点?通常,网站的设计是在主页中设置的。您应该在主页
    jcr:content
    节点中找到
    cq:designPath
    属性。如果没有提到设计路径,那么它将是
    /etc/designs/default
    。您还可以使用
    ${currentStyle.path}
    检查currentStyle的路径我检查了cq:designPath在author和publish中是否相同,但当我使用${currentStyle.path}要在author和publish中获取路径,则有一个细微的区别,即author:
    /etc/designs/corporate/global//jcr:content/page/par main/column control/par-col-1/
    publish:
    /etc/designs/corporate/global//jcr:content/page/column control/par-col-1/
    更多的设计属性存储在
    /etc/designs/corporate/global//jcr:content/page/par main/column control‌​l/par-col-1/
    仅适用于这两种情况。