命令宏為一組命令提供了命名的快捷方式。 宏在單獨的宏定義檔案中定義,這些檔案可附加到影像目錄或預設目錄。
$ *
名稱*$
名稱 |
宏名稱。 |
*
*
name不區分大小寫,並且可能包含ASCII字母、數字、「 — 」、「_」和「。」的任何組合。字元.
可以在「?」後的請求中的任意位置以及catalog::Modifier
或catalog::PostModifier
欄位內的任意位置調用宏。 宏只能表示一個或多個完整的Image Serving命令,並且必須與具有「&」分隔符的其他命令分開。
在解析期間,宏調用會被其替代字串替換。 如果宏中的命令在請求中的宏調用之前發生,則這些命令將覆蓋請求中的相同命令。 這與catalog::Modifier
不同,後者要求字串中的命令一律會覆寫catalog::Modifier
字串中的命令,無論要求中的位置為何。
命令巨集不能有引數值,但可使用自訂變數將值從請求傳遞至巨集。
巨集可以巢狀,但有下列限制:僅當在分析宏定義時已定義宏時,才能調用該宏,方法是先前在同一宏定義檔案中顯示,或將此類嵌入宏的定義放在預設宏定義檔案中。
如果要將相同屬性套用至不同的影像,巨集將十分實用。
http://server/cat/1345?wid=240&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1 http://server/cat/1435?wid=240&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1 http://server/cat/8243?wid=480&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1
我們可以為公共屬性定義宏:
view wid=240&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1
宏的使用方式如下:
http://server/cat/1345?$view$ http://server/cat/1435?$view$ http://server/cat/8243?$view$&wid=480
由於第三個請求的wid=
不同,因此我們只是在叫用宏的之後覆寫值(在$view$
之前指定wid=
將不會產生任何效果)。
catalog::MacroFile , catalog::Modifier,宏定義 參考