サイトのキャッシュの設定
Salesforce サイトのページ、添付ファイル、静的リソースをキャッシュすると、ページの読み込み時間とサイトのパフォーマンスを向上させることができます。また、帯域幅やサービス要求の時間制限に達することも回避できます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
| 使用可能なエディション: Developer Edition、Enterprise Edition、Performance Edition、および Unlimited Edition |
エンドユーザーへのコンテンツ配信を最適化するには、キャッシュを有効または無効にして、各サイトのページ、添付ファイル、静的リソースのキャッシュ期間を設定できます。
静的サイトリソースのキャッシュの動作
画像、スタイルシート、スクリプトなどの静的サイトリソースは、リソースの Cache Control 属性に基づいてキャッシュされます。詳細は、Salesforce ヘルプの「静的リソースの定義」を参照してください。
添付ファイルのキャッシュの動作
Experience Cloud サイトと Salesforce サイトに保存されている添付ファイルの場合、キャッシュの動作は添付ファイルの種別によって異なります。
| 添付ファイルの種別 | キャッシュの動作 | キャッシュの保存場所 |
|---|---|---|
| ドキュメントと添付ファイル | キャッシュの有効期限は maxage パラメーター (秒) に従います。例: /servlet/servlet.FileDownload?file=<FileID>&maxage=600 |
エンドユーザーの Web ブラウザー |
| リッチテキストエリア内の画像 | キャッシュの有効期限は 45 日です。 | IP 制限のない認証されていないゲストユーザー: プロキシサーバー IP 制限のあるゲストユーザーと認証済みユーザー: エンドユーザーの Web ブラウザー |
公開 Visualforce ページのサイトレベルのキャッシュオプション
サイトの公開 Visualforce ページをキャッシュするかどうかを制御するには、サイトレベルの設定 [公開 Visualforce ページをキャッシュ] を設定します。新規サイトでは、この設定はデフォルトで有効になっています。
サイトレベルの設定が有効になっている場合:
- 認証されていないゲストユーザーがページを訪問したときにのみ、公開されている Visualforce ページの応答がプロキシサーバーにキャッシュされます。
- 公開されている Visualforce ページのキャッシュの動作とキャッシュの場所は、サイトのゲストユーザーに IP 範囲の制限またはログイン時間帯の制限が定義されているかどうかによって異なります。
- ネットワークレベルでキャッシュが実行される場合、ゲストユーザーに対してページがキャッシュ可能であるときには、そのページの未認証バージョンを認証済みユーザーに提供できます。ネットワークレベルでサイトページをキャッシュできるオプションの例として、コンテンツ配信ネットワーク (CDN) や捕捉を行うプロキシサーバー (データ損失防止 (DLP) プロキシなど) があります。この動作は、カスタムドメインで Salesforce CDN または HTTPS 証明書を使用してサイトを提供している場合にも発生する可能性があります。
- 公開されている個々の Visualforce ページのキャッシュは無効にすることが可能です。キャッシュを無効にするには、ページの Boolean 値の
cache属性をfalseに設定します。
サイトレベルの設定が無効になっている場合:
- プロキシサーバーにはサイトの Visualforce ページはキャッシュされません。代わりに、サイトのキャッシュ対応 Visualforce ページは、認証済みユーザーと認証されていないユーザーの両方で Web ブラウザーにキャッシュされます。このキャッシュの動作は、サイト外で Salesforce が提供する Visualforce ページのキャッシュと一致します。
- 公開されている個々の Visualforce ページに対してキャッシュを有効にできます。キャッシュを有効にするには、ページの Boolean 値の
cache属性をtrueに設定します。
公開 Visualforce ページのページレベルのキャッシュオプション
サイトの Visualforce ページのキャッシュの動作を制御するには、各ページの Boolean 値の cache 属性と整数の expires 属性を設定します。
たとえば、キャッシュ時間が 15 分に設定されている Visualforce ページは次のようになります。
<apex:page cache="true" expires="900">サイトレベルのキャッシュが有効な場合の Visualforce ページのキャッシュの動作
サイトレベルの [公開 Visualforce ページをキャッシュ] 設定が有効になっている場合、キャッシュのルールは次のとおりです。
- ページがキャッシュされるのは、ページレベルの
cache属性がtrueの場合、またはその属性が設定されていない場合のみです。 - キャッシュの動作と場所は、サイトのゲストユーザーに対して IP 範囲の制限またはログイン時間帯の制限が定義されているかどうかによっても異なります。
- このようなケースでキャッシュが実行されると、ページの
expires属性に基づいてキャッシュは期限切れになります。ページのexpires属性が設定されていない場合、キャッシュの有効期限は 600 秒 (10 分) です。
| イベント | ページレベルの cache 属性 |
サイトゲストユーザーの制限 | キャッシュの保存場所 |
|---|---|---|---|
| 認証されていないユーザーが、ログインが有効になっているサイトにアクセスする。 | true、false、または未設定 |
あり | キャッシュされません。 |
true または未設定 |
なし | プロキシサーバーとエンドユーザーの Web ブラウザー | |
false
|
なし | キャッシュされません。 | |
| 認証済みユーザーが、ログインが有効になっているサイトにアクセスする。 | true、false、または未設定 |
はい/いいえ | キャッシュされません。 |
| ユーザーが、ログインが有効になっていない Salesforce サイトにアクセスする。 | true または未設定 |
あり | エンドユーザーの Web ブラウザー |
| なし | プロキシサーバーとエンドユーザーの Web ブラウザー | ||
false
|
はい/いいえ | キャッシュされません。 |
サイトレベルのキャッシュが無効な場合の Visualforce ページのキャッシュの動作
サイトレベルの [公開 Visualforce ページをキャッシュ] 設定が無効になっている場合、ページレベルのキャッシュ属性を介して、特定のページのキャッシュを有効にできます。属性が true の場合、Visualforce ページはエンドユーザーの Web ブラウザーでキャッシュされ、そのキャッシュの有効期限はページの expires 属性に従います。ページの expires 属性が設定されていない場合、キャッシュの有効期限は 0 秒です。
この動作は、サイトでログインが有効になっているかどうかに関係なく、認証済みユーザーと認証されていないユーザーの両方に適用されます。また、サイトのゲストユーザーに IP 範囲の制限または作業時間帯の制限があっても、このキャッシュの動作には影響しません。
| イベント | ページレベルの cache 属性 |
キャッシュの保存場所 |
|---|---|---|
| ユーザーがサイトにアクセスする。 |
true
|
エンドユーザーの Web ブラウザー |
false または未設定 |
キャッシュされません。 |

