portlet-liferay.xml:如何正确使用portal-javascript-header

yan*_*kee 2 liferay

我把jquery.js复制到了WebContent/js/jquery/jquery.js.现在我想在某些portlet中使用该文件.为此,我创建了一个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>
Run Code Online (Sandbox Code Playgroud)

如果我访问portlet,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>
Run Code Online (Sandbox Code Playgroud)

这导致WARN [404_jsp:?] /js/jquery/jquery.js在日志记录控制台中.

URL看起来是否正确?如果我有两个war文件,都包含一个具有相同路径的js文件,Liferay将如何区分这两个?

我需要做些什么才能使我的设置正常工作?

使用Liferay Portal Community Edition 6.1.0 CE(Paton/Build 6100/2011年12月15日)

Squ*_*oot 11

使用

<header-portlet-javascript>/js/jquery/jquery.js</header-portlet-javascript>
Run Code Online (Sandbox Code Playgroud)

而不是

<header-portal-javascript>/js/jquery/jquery.js</header-portal-javascript>
Run Code Online (Sandbox Code Playgroud)

如果你把js文件放入portlet

因为关于DTD中的注释,header-portal-javascript设置JavaScript相对于门户的上下文路径的路径.header-portlet-javascript设置JavaScript相对于portlet上下文路径的路径.