Liferay: как минимизировать файлы CSS и JS, включенные в jsp

Я использую несколько файлов css и js в одном из своих портлетов Liferay. Файлы CSS и JS, включенные в файл liferay-portlet.xml, автоматически включаются в страницу.

Помимо файлов, упомянутых в файле XML, я использую внешний файл CSS и JS, используя тег Link и Script.

Как я могу минимизировать эти файлы?

OR

<portlet>
    <portlet-name>demo-page</portlet-name>
    <icon>/icon.png</icon>
    <header-portlet-css>/css/main.css</header-portlet-css>
    <header-portlet-css>/css/style.css</header-portlet-css>
    <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
</portlet>

Я хочу использовать main.css в page1.jsp, но не в page2.jsp. Могу ли я определить область страницы для файлов, включенных в liferay-portlet.xml?


person Manish Mahajan    schedule 20.05.2016    source источник


Ответы (3)


Вы просто используете свой файл, как для css: < link rel="stylesheet" href="<%=request.getContextPath()%>/my_sources/css/style.css"/>, а liferay позаботится о минимизации (если вы не отключили его в portal-ext.properties).

person KlajdPaja    schedule 20.05.2016
comment
Это не работает, даже если значение theme.css.fast.load истинно - person Manish Mahajan; 20.05.2016
comment
Это довольно странно... вы пытались добавить cc_fast_load=1 в качестве параметра запроса в свой URL? - person KlajdPaja; 20.05.2016
comment
просто ссылка на какой-то случайный css в HTML не заставляет Liferay обрабатывать этот файл. Я бы порекомендовал добавить CSS в тему — это незначительно увеличит CSS темы (который будет минимизирован), и все готово. - person Olaf Kock; 20.05.2016

В вашем портале-ext:

# Set this property to true to load the theme's merged CSS files for faster
# loading for production.
#
# Set this property to false for easier debugging for development. You can
# also disable fast loading by setting the URL parameter "css_fast_load" to
# "0".
#
theme.css.fast.load=true


# Set this property to true to load the packed version of files listed in
# the properties "javascript.barebone.files" or
# "javascript.everything.files".
#
# Set this property to false for easier debugging for development. You can
# also disable fast loading by setting the URL parameter "js_fast_load" to
# "0".
#
javascript.fast.load=true
person Moolerian    schedule 21.05.2016

Liferay только минимизирует ресурс, включенный в темы и портлет, добавляя его в liferay-portlet.xml. Если вы хотите сделать это для всех файлов css и js, вы должны реализовать хук для фильтра сервлетов Liferay, и внутри фильтра вы можете обрабатывать любой ресурс по своему усмотрению. Фильтр выполняется во всех запросах к внешним ресурсам.

введите здесь описание изображения

person atrujillofalcon    schedule 23.05.2016