gpt4 book ai didi

sling - 如何仅在 Sightly 模板中包含存在的资源?

转载 作者:行者123 更新时间:2023-12-04 19:02:48 26 4
gpt4 key购买 nike

我想用 data-sly-resource包含资源,但前提是它存在,例如

<div class="pull-right" data-sly-resource="/content/blog/stats"></div>

如果资源不存在,脚本执行失败并显示以下错误消息:找不到 servlet 来处理资源/content/blog/stats 。从请求进度列表中我可以看到它是一个 SyntheticResource :

TIMER_START{resolveServlet(SyntheticResource, type=null, path=/content/blog/stats)}



仅当资源存在时,如何有条件地包含资源?

最佳答案

在这种情况下,最好的解决方案是允许您的 redis/stats组件正确处理 Resource 时的情况它应该渲染的是 SyntheticResource或者,更一般地说,不提供任何属性。

因此,调用 Sightly 代码段应该是:

<div class="pull-right" data-sly-resource="${'/content/blog/stats' @ resourceType='redis/stats'}"></div>

这会强制由您的 redis/stats 进行渲染。组件,即使 /content/blog/stats资源不存在(好吧,Sling 将返回 SyntheticResource ,就像您提到的那样)。

在您的 redis/stats组件,然后您可以尝试此保护措施:
<div class="blog-stats" data-sly-test="${properties}">
<!--/* This whole block will only be rendered if properties is not empty */-->
</div>

这将呈现 div.blog-stats仅当属性映射不为空 [0] 时。

[0] - https://github.com/Adobe-Marketing-Cloud/sightly-spec/blob/1.1/SPECIFICATION.md#225-test

关于sling - 如何仅在 Sightly 模板中包含存在的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33485920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com