在 Salesforce Apex 中动态引用静态资源名称

Refer to static resource name dynamicly in Salesforce Apex

我正在尝试循环文章类别并根据其在 Salesforce Apex 中的标题为每个类别提供图标图像。我不想对每个静态资源名称进行硬编码。我的想法是为每个循环迭代创建一个字符串变量,并通过该变量值引用匹配的静态资源名称。所以我查看了关于此事的doc,它似乎没有按预期方式工作。

<knowledge:categoryList categoryVar="category" categoryGroup="Help" rootCategory="Using_{!selectedCategory}" level="1">
    <apex:variable var="iconSource" value="pkb_{!selectedCategory}_{!category.name}" />
    <a href="#" class="item">
        <div class="box-title">
            <h3>{!category.label}</h3>
        </div>
        <apex:image value="{!$Resource[iconSource]}" />
    </a>
</knowledge:categoryList>

知道通常是如何完成的吗?

如果您拥有内部结构如下的静态资源:

/js/...
/css/...
/img/...

您可以使用这样的构造访问静态资源项:

{!URLFOR($Resource.resourceName, 'img/imageName.jpg')} 

因此,对于 apex:image 标记,它看起来像:

<apex:image url="{!URLFOR($Resource.resourceName, 'img/imageName.jpg')}" width="50" height="50"/>