portlet-liferay.xml: как правильно использовать portal-javascript-header - PullRequest
2 голосов
/ 15 января 2012

Я скопировал jquery.js в WebContent/js/jquery/jquery.js.Теперь я хочу использовать этот файл в определенных портлетах.Для этого я создал файл liferay-portlet.xml, который выглядит следующим образом:

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC
    "-//Liferay//DTD Portlet Application 6.0.0//EN"
    "http://www.liferay.com/dtd/liferay-portlet-app_6_0_0.dtd">

<liferay-portlet-app>
    <portlet>
        <portlet-name>MyPortletName</portlet-name>
        <header-portal-javascript>/js/jquery/jquery.js</header-portal-javascript>
    </portlet>
</liferay-portlet-app>

Если я обращаюсь к портлету, Liferay генерирует следующую строку:

<script src="/js/jquery/jquery.js?browserId=firefox&amp;minifierType=js&amp;languageId=en_US&amp;b=6100&amp;t=1326630657000" type="text/javascript"></script>

Это приводит к WARN [404_jsp:?] /js/jquery/jquery.js в консоли ведения журнала.

Действительно ли правильно, что URL выглядит так?Если бы у меня было два war-файла, каждый из которых содержал js-файл с одинаковым путем, как бы Liferay различал эти два?

Что мне нужно сделать, чтобы моя установка работала?

Использование Liferay Portal Community Edition 6.1.0 CE (Paton / Build 6100/15 декабря 2011 г.)

Ответы [ 3 ]

11 голосов
/ 17 января 2012

Используйте

<header-portlet-javascript>/js/jquery/jquery.js</header-portlet-javascript>

вместо

<header-portal-javascript>/js/jquery/jquery.js</header-portal-javascript>

, если вы помещаете js-файлы в портлет

Поскольку в отношении комментариев в DTD, header-portal-javascriptустанавливает путь JavaScript относительно пути к контексту портала.И header-portlet-javascript устанавливает путь JavaScript относительно пути к контексту портлета.

1 голос
/ 16 января 2012

Местоположение для jQuery выглядит неверно.

Если вы связываете это с вашим собственным плагином с именем foobar-portlet, правильный путь будет (при условии, что вы используете тот же liferay-portlet.xml):

foobar-portlet/docroot/js/jquery/jquery.js

0 голосов
/ 16 января 2012

Две вещи:

jQuery входит в комплект поставки Liferay 5 , проверьте версию Liferay и версию jQuery, которую он поставил, и посмотрите, соответствует ли она вашим потребностям. Однако я считаю, что это не в Liferay 6 или 6.1, но я могу ошибаться.

И

Если вы хотите, чтобы библиотека JavaScript была доступна для всех ваших портлетов, лучше добавить ее к темам, которые вы используете, а не к портлетам. Таким образом, он будет доступен во всем мире. Недостатком является то, что если вы распространяете свой портлет, вы должны информировать людей об этой зависимости.

В противном случае, если вы просто хотите, чтобы он был доступен для небольшой группы ваших портлетов, следуйте указаниям RP.

Вот хорошая справка по , использующему jQuery с Liferay 6 .

...