当我创建蓝图网站的 Live Copy 并使用标准推出配置推出页面时,页面中的链接会更新以反映 Live Copy 版本。
前任。/content/myblueprintwebsite/home.html -> /content/mylivecopywebsite/home.html
但是当这些路径隐藏在页面内容节点的属性中时,它们不会更新,并且仍然指向蓝图页面。
...这是预期的行为吗?如果是这样,我想我将不得不编写自己的推出配置?或者这个问题有其他解决方案吗?
感谢您的回答。
根据: https ://docs.adobe.com/docs/en/aem/6-1/administer/sites/msm/msm-livecopy.html
" 当蓝图源包含指向不同章节中的段落的链接和引用时,目标不会在 Live Copy 页面中更新。例如,Live Copy 是从 Geometrixx 演示站点蓝图创建的。工具栏章节中的链接目标服务章节未在 Live Copy 中更新,并继续针对 Geometrixx 演示站点中的原始页面。”
我对上述内容的解释: - 如果指向目标的链接是在祖先系中的页面上创建的,则更改将反映在实时副本中。
我通过在 bp/en/parent 页面和 bp/en 页面上配置指向 bp/en/parent/child-page 的链接对此进行了测试。在这两种情况下,相应的 live-copy/... 页面反映了 Live Copy 特定子页面的更改路径。
此外,无论使用什么小部件,链接都会发生变化 - OotB 列表、自定义链接小部件或文本小部件中配置的超链接。
进一步的问题: 编辑可能希望从不在祖先行中的页面创建链接。然后怎样呢?是否有可以设置为允许更改发生的配置?或者我们是否需要编写自定义推出操作?
当页面推出完成时,它会更新所有单独的内容引用,例如:
属性节点中的路径,如果它是单独存储的,即不与任何其他文本连接,例如:hello /content/test/master/en。
如果路径在其他文本的中间,它不会更新。
和
创建自定义部署并不能满足您的目的。如果您真的想创建自定义部署来满足此要求,那么您必须创建以下自定义实时操作并编写逻辑来查找路径然后修改它们。
1.ContentCopyActionFactoryCustom 2.ContentDeleteActionFactoryCustom 3.ContentUpdateActionFactoryCustom
创建自定义推出是一个有风险的选择,因为推出是从许多地方调用的,例如在创建实时副本时,从蓝图部分,推出页面及其子页面和后台执行等,我们必须处理由此引起的任何异常明确地。如果您开始更改一个文件,那么您最终会更改所有相关文件,这已经在许多 java 类上推出了实现。
理想解决方案:将所有路径保存在单个属性中,AEM 将负责更新那里的引用
干杯!!