7

我已经下载了一个 Jquery Image Slider 源并想与我的 JSP 文件集成

这是我的文件夹结构

在此处输入图像描述

这就是我包括他们的方式

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link type="text/css" href="/css/jquery.ui.theme.css" rel="stylesheet" />
<link type="text/css" href="/css/jquery.ui.core.css" rel="stylesheet" />
<link type="text/css" href="/css/jquery.ui.slider.css" rel="stylesheet" />
<link rel="stylesheet" href="/css/style.css" type="text/css" media="screen"/>

我在服务器控制台中得到这个 404

20:50:04,625 WARN [404_jsp:109] /css/jquery.ui.theme.css
20:50:04,640 WARN [404_jsp:109] /css/jquery.ui.core.css
20:50:04,640 WARN [404_jsp:109] /css/jquery.ui.slider.css
20:50:04,656 WARN [404_jsp:109] /css/style.css
20:50:04,671 WARN [404_jsp:109] /js/cufon-yui.js
20:50:04,671 WARN [404_jsp:109] /js/GreyscaleBasic.font.js
20:50:04,687 WARN [404_jsp:109] /js/jquery.easing.1.3.js
4

2 回答 2

12

把链接放进去liferay-portlet.xml,让 Liferay 加载 css 和 javascript。这是更好的方法(例如,如果用户想要将两个 portlet 放在一个页面上)。

liferay-portlet.xml:

<header-portlet-css>/css/main.css</header-portlet-css>
<footer-portlet-javascript>/js/main.js</footer-portlet-javascript>

奥拉夫是对的,您必须将 css- 和 js- 文件夹(以及图像)从一个文件夹移动WEB-INF到另一个文件docroot

于 2012-04-22T19:47:47.773 回答
8

几个问题:

  • 如果我在您发布的缩略图中正确看到了这一点,那么您的 css 和 js 文件夹位于 WEB-INF 中:任何浏览器都无法请求 WEB-INF 中的任何内容,因此您永远无法获得它。
  • 如果您创建 docroot/css 和 docroot/js,您仍然会得到 404,因为您无法在 /css/style.css 上找到文件,但在 /your-portlet/css/style.css 中 - 通用方式在jsps中解决它是

    < link rel="stylesheet" href="<%=request.getContextPath()%>/css/style.css"/>
    

后期编辑:request在 portlet 的 JSP 上并不总是有效,因为根据 JSP 规范,它是一个 HttpServletRequest。在门户世界中,这通常与您的 portlet 的当前路径无关。因此,我建议使用 Mark 的答案而不是我的答案:liferay-portlet.xml 包含与当前 portlet 相关的文件。从 Liferay 7.0 开始,您可以使用与 liferay-portlet.xml 等效的 OSGi 组件。

于 2012-04-21T07:38:57.183 回答