$Resource
$Resource を使用すると、正確な URL やファイルパスがわからなくても、名前でアセットを参照できます。$Resource は、Lightning コンポーネントのマークアップおよび JavaScript コントローラやヘルパーコード内で使用できます。
コンポーネントのマークアップでの $Resource の使用
1<aura:component>
2 <!-- Stand-alone static resources -->
3 <img src="{!$Resource.generic_profile_svg}"/>
4 <img src="{!$Resource.yourNamespace__generic_profile_svg}"/>
5
6 <!-- Asset from an archive static resource -->
7 <img src="{!$Resource.SLDSv1 + '/assets/images/avatar1.jpg'}"/>
8 <img src="{!$Resource.yourNamespace__SLDSv1 + '/assets/images/avatar1.jpg'}"/>
9</aura:component>1<aura:component>
2 <ltng:require
3 styles="{!$Resource.SLDSv1 + '/assets/styles/lightning-design-system-ltng.css'}"
4 scripts="{!$Resource.jsLibraries + '/jsLibOne.js'}"
5 afterScriptsLoaded="{!c.scriptsLoaded}" />
6</aura:component>JavaScript での $Resource の使用
JavaScript コードで静的リソースへの参照を取得するには、$A.get('$Resource.resourceName') を使用します。
1({
2 profileUrl: function(component) {
3 var profUrl = $A.get('$Resource.SLDSv1') + '/assets/images/avatar1.jpg';
4 alert("Profile URL: " + profUrl);
5 }
6})$Resource の考慮事項
Lightning コンポーネントフレームワークのグローバル値プロバイダは、Salesforce のグローバル変数とは大きく異なる形でバックグラウンドで実装されます。$Resource は、Visualforce や数式項目などで使用できる同じ名前のグローバル変数に似ていますが、重要な違いがあります。他のドキュメントを、その使用や動作のガイドラインとして使用しないでください。
Lightning コンポーネントフレームワークの $Resource に特有の、留意すべき事項が 2 つあります。
1 つ目は、$Resource は Lightning コンポーネントフレームワークがクライアントに読み込まれるまで使用できないということです。マークアップのみで構成される一部の非常に単純なコンポーネントは、$Resource を使用できないサーバ側で表示できます。これを回避するには、新しいアプリケーションの作成時にコンポーネントがクライアントで表示されるようにクライアント側コントローラをスタブアウトします。
2 つ目は、Visualforce などの $Resource グローバル変数を操作する場合、特定のリソースの完全な URL を構築するために URLFOR() 数式関数も使用するということです。Lightning コンポーネントフレームワーク の URLFOR() とは大きく異なります。こちらでは、前の例のように代わりに単純な文字列の連結を使用します。