2015-12-29 2 views
1

Я немного новичок в AEM и Sightly. Я написал компонент страницы, чтобы разместить содержимое моей страницы. У меня есть ряд устройств с различной CSS под /etc/designs/myapp следующим образом:AEM Sightly Include from/etc/designs

/etc/designs/myapp

- /128/style.css 
- /240/style.css 

и т.д. и т.п. ..

Назад в моей странице компоненте, у меня есть несколько различных HTML-файлы, которые я использовать для запуска правильного CSS с помощью селектора Sling. Например:

/apps/myapp/components/page

- 128.html 
- 240.html 

Цель этих файлов включить в раздел HTML <head> с CSS как встроенного стилем (не может ссылаться на внешний CSS из-за ограничения устройства).

Проблема, с которой я столкнулась, заключается в том, что если я помещаю 128/style.css внутри самого компонента, это работает. Если у меня это под /etc/designs/myapp, я не могу заставить его правильно включить. Я попытался использовать ${currentDesign.path @ appendPath='/128/style.css'}, и я попытался явно ссылаться на весь путь.

Вот пример 128.html, в рамках компонента страницы:

<html> 
<head><!--/* 
    */--><div data-sly-include="/libs/wcm/core/components/init/init.jsp" data-sly-unwrap></div><!--/* 
    */--> 

    <title>${currentPage.title}</title> 
     <div data-sly-unwrap data-sly-include="/etc/designs/myapp/128/style.css"></div> 
</head> 
<body class="main" role="document" data-sly-include="body.html"></body> 
</html> 

Я понимаю, что мне нужно <style></style> раздел оберточной любой CSS, который включен, но сейчас, я просто пытаюсь получить страницу, которая должна включать от /etc/designs.

Любая помощь была бы принята с благодарностью.

ответ

0

Из определения данных, хитрый-включает: https://docs.adobe.com/docs/en/aem/6-1/develop/sightly/block-statements.html#include

данные хитрого-включает: Заменяет содержимое принимающего элемента с разметкой, порожденной файлом шаблона указанного HTML (красивым, JSP, ESP и т. д.), когда он обрабатывается соответствующим механизмом шаблона. Контекст рендеринга включенного файла не будет включать текущий Sightly-контекст (в том числе файла); Следовательно, для включения Sightly-файлов текущее использование данных должно быть повторено во включенном файле (в таком случае обычно лучше использовать скриншоты с данными), а также для обработки данных)

Он не предназначен для использования в качестве типа включения, которое вы пытаетесь сделать, поскольку вы не вызываете никакого средства визуализации. Я думаю, вы должны использовать клиентские библиотеки и включать только ваши CSS файлы, вот документация об этом: http://blogs.adobe.com/experiencedelivers/experience-management/sightly-clientlibs/

Вы должны определить категорию клиентской библиотеки для каждого из стилей и назвать правильный clientlib, когда вам это нужно с помощью <meta data-sly-call="${clientLib.css @ categories='category.style.128'}" data-sly-unwrap></meta>

Надеюсь, это поможет.