我一直在尝试将shufflejs包含在Liferay(6.2)portlet中。
我已将以下依赖项添加到我的pom.xml
文件中:
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>shufflejs</artifactId>
<version>4.0.0</version>
<scope>compile</scope>
</dependency>
webapps/my-portlet/WEB-INF/lib/shufflejs-4.0.0.jar
,其中包含META-INF/resources/webjars/shufflejs/4.0.0/dist/shuffle.js
我在liferay-portlet.xml
文件中包含以下行:
<header-portlet-javascript>
/webjars/shufflejs/4.0.0/dist/shuffle.js
</header-portlet-javascript>
http://localhost:20080/my-portlet/webjars/shufflejs/4.0.0/dist/shuffle.js?browserId=other&minifierType=js&languageId=en_US&b=6210&t=1465296591338
我错过了什么?
谢谢
答案 0 :(得分:1)
假设您使用的是Servlet 3.0容器,则表明您的URL错误。你需要使用:
<header-portlet-javascript>
/webjars/shufflejs/4.0.0/dist/shuffle.js
</header-portlet-javascript>
Servlet 3的说明
使用任何与Servlet 3兼容的容器,
WEB-INF/lib
目录中的WebJars是自动的 作为静态资源提供。这是有效的,因为任何东西META-INF/resources
中JAR中的WEB-INF/lib
目录是自动的 作为静态资源公开。
注意,此文档表明您应该使用webjars/shufflejs/4.0.0/dist/shuffle.js
,但对Liferay <header-portlet-javascript>
配置进行一些实验会导致前面的/
作为Liferay的必要性将此URL连接到portlet名称的末尾,以形成完整的Liferay资源URL。
答案 1 :(得分:0)
我找到了麻烦的原因。我已经部署了我的portlet并使用JRebel在Eclipse中运行门户。当我在没有JRebel的情况下部署/运行我的portlet时,会找到此资源。此外,我可以将门户网站关闭,然后在Eclipse / JRebel中重新启动 - 现在可以找到资源。
我之前遇到类似的问题(请参阅Liferay: perform an action when a -LocalServiceUtil is available)与Eclipse / JRebel一起运行。总而言之,Eclipse / JRebel非常棒,但有时在部署portlet时会出现一些小问题。