置換変数 substitution-variables
置換変数は、リクエスト URLから画像カタログに保存された合成テンプレートに値を転送するために使用されます。 変数を使用して、複雑なリクエスト内の異なる場所に同じ値を伝えることもできます。
$ *var*= *値*
変数の定義と参照は、リクエストのクエリ部分、catalog::Modifierおよびcatalog::PostModifierで発生する可能性があります。
変数は、他のIS コマンドと同様に上記のように定義されます。先頭の’$'は、コマンドを変数定義として識別します。 変数は、参照する前に定義する必要があります。
変数名 var は大文字と小文字を区別せず、ASCII文字、数字、「 – 」、「_」、「。」の組み合わせで構成される可能性があります。
valueは、安全なHTTP送信のためにシングルパス URL エンコードする必要があります。 valueがHTTP経由で再送信される場合は、ダブルエンコーディングが必要です。 これは、valueがネストされた外部リクエストまたはSVG <image>要素のhref属性に置き換えられる場合に発生します。変数参照は、先頭と末尾の’$’ ($var$)で区切られた変数名で構成されます。 参照は、任意のIS コマンドの値部分(つまり、コマンド名の後の’=‘とその後の’&'またはリクエストの最後の間)のどこでも発生する可能性があります。 カスタム変数は、layer=およびeffect= コマンドに適用できません。 同じコマンド値で複数の変数を使用できます。 サーバーは、 $ *var*$の各出現を value に置き換えます。
変数参照はネストできません。 value内の $ *var*$の出現箇所は置換されません。
例えば、リクエストフラグメントは次のようになります。
$var2=apple&$var1=my$var2$tree&text=$var1$
次の項目に解決します。
text=my$var2$tree
src=my$image$file.tifは有効なコマンドです(my$image$file.tifという名前のカタログエントリまたは画像ファイルが存在すると仮定します)。一方、wid=$number$はそうではありません。widには数値引数が必要です。ネストされたリクエストでの変数処理 section-26d63adc446c4fa0808e11e8082abdfa
$ *var*$参照は、ネストされた画像サービングまたは画像レンダリング要求の中の中括弧の中のどこでも発生する可能性があります。これには、パスをクエリから分離する「?」の左側も含まれます。 サーバーは、ネストされたリクエストをさらに解析して処理する前に、これらの参照を値(URLまたはメイン画像カタログのcatalog::Modifierから)に置き換えます。
さらに、URLまたはcatalog::Modifierからのすべての $ *var*=定義は、ネストされたすべての画像サービングおよび画像レンダリング要求に転送されます。 これにより、ネスト レベルに関係なく、すべての変数定義がすべてのテンプレートで使用できるようになります。
ネスト レベルに関係なく、ネストされた画像レンダリングまたは画像サービングのリクエスト、または関連するcatalog::Modifier文字列のどこでも置換される変数値には、シングルパス HTTP エンコーディングのみを適用する必要があります。
埋め込まれた外部リクエストでの変数処理 section-314e39a9aefb46faa737fd137897d1b0
埋め込まれた外部リクエストの中かっこ内のどこかで発生する $ *var*$参照は、一致する変数定義値で置き換えられます。 これにより、埋め込まれた外部リクエストを画像カタログ内のテンプレートに配置できます。
サーバーが最終的な外部URLの送信を試みる前に再エンコーディングが適用されないため、通常、外部リクエストに置換される変数値はダブルエンコードする必要があります。
SVG ファイルでの変数処理 section-a8359f9909764142b6a18ae778dca913
$ *var*$参照は、属性値および<text>文字列のSVG ファイルで発生する可能性があります。 Image Servingは、SVG ファイルが指定されているリクエストネスティングレベルで既知の一致する $ *var*=定義でこれらを置き換えます。
href属性値に代入する変数値は、二重URL エンコードにする必要があります。その他はすべて単一エンコードする必要があります。定義済みのパス変数 section-930d0dd12e8f49499becc9fe8df24092
リクエストパスで指定された object は、事前定義済みの変数*$オブジェクト *に割り当てられます。 ’ $ * オブジェクト *$'は、リクエスト内の任意の場所、リクエストによって参照されるテンプレート、またはそのようなオブジェクトが許可されるネスト/埋め込みリクエスト(値src=およびmask=、ネスト/埋め込みリクエストのパスなど)に配置できます。
例えば、次のリクエストでは、パスで指定された画像を、ネストされたリクエストのレイヤーのソースとして再利用します。
/is/image/a/b?…&layer=3&src=is{…&src=$object$}&…
これは
/is/image/a/b?…&layer=3&src=is{…&src=a/b}&…
*$object*の定義は、目的の値で $ *object*=を明示的に指定することで上書きできます。
定義済みのパス変数は、一般的にtemplate=と組み合わせて使用されます。
初期設定 section-b02483d15529444586a2e9504805b155
なし 定義された変数のみがサーバーで置換されます(ただし、常に置換される事前定義済みのパス変数$objectは除きます)。 *var*が既存の変数定義と一致しない場合、 $ *var*$の出現箇所はリテラルのままになります。
例 section-fba9393df6984247b7e30b3f93992e86
テンプレート の「サンプル A」を参照してください。