我引用了aem-phonegap-kitchen-sink和aem-phonegap-starter-kit。我到了可以导出我的PhoneGap应用程序,构建和运行它的地步。但是,我尝试在其中一个页面模板中添加其他图像。仅导出名为image
的图像资源。所有其他图像都被忽略。如果您看到我的内容树,image
将导出为page-one.img.png
,但其他两个将被忽略。
我开始研究aem-phonegap-kitchen-sink和[aem-phonegap-starter-kit]的ContentSync配置,我发现这些处理程序被引用
我查找了content sync documentation(我正在使用6.1),但这只提到了copy
和assets
这样的简单处理程序。
我到处都看了,我找不到他们的文件。我认为mobilepageassets
正在导出我的图像。
那么如何才能导出我的其他图像呢?
更新
我尝试将wcm/foundation/components/image
添加到com.day.cq.wcm.contentsync.impl.handler.PagesUpdateHandler
OSGi配置中。这没有效果。
我也尝试将我的图像资源类型切换到foundation/components/image
。这也没有效果。
答案 0 :(得分:2)
由于我找不到任何文档,我找到了mobilepageassets
的内容更新处理程序实现并对其进行了反编译。
使用
创建custom handler component@Component(factory="com.day.cq.contentsync.handler.ContentUpdateHandler/identifier")
为了找到mobilepageassets
实现,我转到services console并使用
(component.factory=*mobilepageassets)
从那里我可以获得实现类,以及我下载并通过Luyten decomplier运行的JAR文件的位置。
通过查看该来源,我开始理解两件事:
page-name.img.png
的唯一原因是因为我发生了命名我的图像资源image
,这与WCM页面缩略图使用的名称相同。cq.pagesupdatehandler.imageresourcetypes
的属性。最后,我添加了com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePageAssetsUpdateHandler
OSGi配置
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
cq.pagesupdatehandler.imageresourcetypes="[wcm/foundation/components/image]"/>
确实导出了我的图像,但路径错误。它们被导出到'jcr_content'文件夹,其中标记正在寻找'__jcr_content'。我确实注意到PG入门套件&amp;厨房水槽有特殊处理。我找到mobileapps/components/image
而不是实现我自己的图像组件,这对我的需求来说足够简单。在那种情况下,我甚至不需要OSGi配置。
答案 1 :(得分:-1)
即使在AEM 6.2中,您也可以在OSGi控制台中添加组件的resourceTypes以获取以下服务:
com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePageAssetsUpdateHandler.name -
com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePagesUpdateHandler.name -
com.adobe.cq.mobile.platform.impl.contentsync.handler.MobileRootPageUpdateHandler.name -
com.adobe.cq.mobile.platform.impl.contentsync.handler.OffersUpdateHandler.name。