2016-07-05 59 views
0

我想循环文章类别并根据Salesforce Apex中的标题为每个类别提供图标图像。我不想硬编码每个静态资源名称。我的想法是为每个循环迭代创建一个字符串变量,并引用通过此变量值匹配静态资源名称。所以我在这个问题上看了一下doc,看起来并不像预期的那样工作。在Salesforce Apex中动态查看静态资源名称

<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> 

任何想法如何通常完成?

回答

1

如果你有类似的内部结构的静态资源:

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

可以使用这种结构访问静态资源的项目:

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

因此,对于顶点:图像标记它看起来像:

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

你的意思是我需要上传一个'.zip'静态资源并引用它的内部结构,使用我的' iconSource'变量? – markoffden

+0

是的,这是Salesforce中这种情况的常用方法。你可以在SF文档中找到更多信息 - https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_resources.htm –

+0

嗯,你知道,逻辑运行正常,但它是在我的url结尾增加额外的'orgId'参数,所以我得到404回...'GET http://blablabla.force.com/resource/1467725336000/pkb_category_icons/Classic/Basics.svg?orgId=00D400000008JQP 404( Not Found)' – markoffden