置換変数は、要求URLの値を、イメージカタログに保存されているテンプレートを合成するために使用します。 変数は、複雑なリクエストの様々な場所に同じ値を伝えるためにも使用できます。
$ *
*= *
varvalue*
var |
変数名。 |
value |
変数を設定する値(文字列)。 |
変数の定義と参照は、リクエストのクエリ部分、catalog::Modifier
、およびcatalog::PostModifier
で発生する場合があります。
変数は、他のISコマンドと同様、上記のように定義されます。先頭の「$」は、コマンドが変数定義であることを示します。 変数は、参照前に定義する必要があります。
var
変数名は大文字と小文字が区別されません。また、ASCII文字、数字、「 — 」、「_」、「。」の組み合わせで構成することもできます。
value
は、安全なHTTP送信を目的として、1パスで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
には数値引数が必要なので、これは存在しません。
$ *
*$
varreferencesは、入れ子になった画像サービングまたは画像レンダリング要求の中括弧内(「?」の左を含む)で中括弧内の任意の場所に含めることができます。をクエリから切り離す。 サーバは、これらの参照を(メイン画像カタログのURLまたはcatalog::Modifier
からの)値で置き換えてから、ネストされた要求をさらに解析して処理します。
さらに、urlまたはcatalog::Modifier
のすべての $ *
var*=
定義が、ネストされたすべての画像サービングおよび画像レンダリング要求に転送されます。 これにより、ネストレベルに関係なく、すべてのテンプレートですべての変数定義を使用できます。
ネストのレベルに関係なく、1パスのHTTPエンコーディングのみを、ネストされた画像レンダリングまたは画像サービング要求の任意の場所に置換される変数値、または関連するcatalog::Modifier
文字列に適用する必要があります。
$ *
埋め込まれた外部要求の中括弧内の任意の場所で発生する*$
varreferenceは、一致する変数定義値に置き換えられます。これにより、埋め込まれた外部要求を画像カタログのテンプレートに配置できます。
外部要求で置き換えられる変数値は、通常、重複エンコードする必要があります。これは、サーバーが最終的な外部URLの送信を試行する前に再エンコードが適用されないためです。
$ *
SVGファイル内の属性値と*$
文字列内に <text>
varreferencesが存在する場合があります。画像サービングは、SVGファイルが指定されている要求のネストレベルにある、一致する $ *
var*=
定義に置き換えます。
href
属性値に置き換えられる変数値は、重複URLでエンコードする必要があります。その他のすべては単独でエンコードする必要があります。
要求パスで指定されたobject
は、事前定義の変数*
$object*
に割り当てられます。 ' $ *
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=
と組み合わせて使用されます。
なし. サーバは、定義済みの変数のみを置き換えます(事前定義のパス変数$objectを除き、常に置き換えられます)。 $ *
var*$
は、*
var*
が既存の変数定義と一致しない場合、リテラルのままです。
テンプレートの「例A」を参照してください。