2016-07-05 3 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

Ну, вы знаете, логика работает нормально, но это добавив лишний параметр 'orgId' в конце моего URL-адреса, поэтому я возвращаю обратно 404 ... GET http://blablabla.force.com/resource/1467725336000/pkb_category_icons/Classic/Basics.svg?orgId=00D400000008JQP 404 (Not Found) ' – markoffden