问题描述
我正在尝试在主模板中打印Open Graph meta,但是我无法获取有关详细信息页面上显示的内容的信息,我只能访问详细信息容器页面。
例如,要建立og:image,我在主题的.config上创建了一个属性,但是我无法从“详细”内容中获取此信息:
<meta name="og:image" content="<cms:property name="mytheme.ogImage" file="uri" default="" />">
<meta name="og:image" content="<cms:property name="mytheme.ogImage" file="search" default="" />">
<meta name="og:image" content="<cms:property name="mytheme.ogImage" file="element.uri" default="" />">
<meta name="og:image" content="<cms:property name="mytheme.ogImage" file="search.element.uri" default="" />">
<meta name="og:image" content="<cms:property name="mytheme.ogImage" file="/.content/blogentries/be_00009.xml" default="" />">
最后一个是唯一可行的方法,但是我也不知道如何获取主模板中内容的路径。
我想有一种更简单的方法,但是我没有找到它。
谢谢。
PS:我正在使用OpenCMS 10.5.4。
解决方法
在尝试了很多事情之后,我唯一的“解决方案”是从数据库中检索资源,并直接在Java中建立连接,如this example所示。
通过此连接,我进行了SQL查询,以查找与当前页面的javax.servlet.forward.request_uri相关的资源。
获得资源(包括其文件名)后,可以使用<cms:property name="mytheme.ogImage" file="${filename}" default="" />