Основная причина заключается в том, что атрибуты связаны друг с другом, чтобы определить, как рисовать изображение, и есть другие части приложения, которые ожидают такого расположения. Когда автор настроит изображение, AEM создаст узел изображения под узлом jcr:content вашей страницы.
/content/mysite/mypage/jcr:content/image/<attributes>
Изображение, а также класс AbstractImageServlet ожидает появления определенных атрибутов на узле изображения.
Например, обратите внимание, что эти два URL-адреса отображают одно и то же изображение.
1. http://localhost:4502/content/geometrixx/en/events/dsc.img.png
2. http://localhost:4502/content/dam/geometrixx/banners/dsc.jpg
Первый URL указывает на узел cq:page
и добавляет селектор img
. Этот селектор вызывает сервлет, который извлекает информацию из первого узла image
, который он находит в узле jcr:content
страницы. Этот узел image
имеет атрибут fileReference
, указывающий на фактическое изображение DAM, которое является вторым URL-адресом. Затем сервлет отображает URL-адрес, указанный в атрибуте fileReference
.
В вашем первом примере — компонент Logo — атрибуты относятся к компоненту. Если бы у вас был парсис на странице по пути par
, то если бы вы добавили компонент логотипа на страницу, у вас был бы следующий путь под вашим узлом cq:page
.
/content/mysite/mypage/jcr:content/par/logo/<attributes>
Теперь, когда вы используете селектор img
для вызова сервлета изображения, он будет учитывать атрибуты логотипа.
http://localhost:4502/content/mysite/mypage/jcr:content/par/logo.img.png
Во втором примере — сложном компоненте — вы организуете атрибуты изображения в узле image
, чтобы изолировать эти атрибуты от других настроек.
person
jedatu
schedule
15.01.2014