404找不到JS和CSS

时间:2014-05-06 16:21:55

标签: liferay http-status-code-404

我在Liferay / Tomcat服务器上部署了一个portlet。 portlet.xml 正在调用init param“/index.html”。这个文件在我的门户网站上渲染得很好。

我的/css/js文件夹与/ docroot下的 index.html 位于同一级别。

我将它们链接起来:

<script type="text/javascript" src="js/somejs.js"></script> 
<link rel="stylesheet" type="text/css" href="css/mystyles.css">

文件结构:

 /docroot/
        /css/
        /js/
        index.html

然而,我得到了这些404的

"NetworkError: 404 Not Found - http://localhost:8080/web/guest/js/somejs.js"
"NetworkError: 404 Not Found - http://localhost:8080/web/guest/css/mystyles.css"

我的文件夹不会被识别,除非我输入这个明确链接我的portlet,如下所示:

<script type="text/javascript" src="MyPortlet/js/somejs.js"></script>

这是不可取的,因为将来可能会更改portlet的名称,我将不得不重命名所有<script><link>个引用。

任何想法都可以解决这个问题?我是否需要全局上下文路径?

1 个答案:

答案 0 :(得分:3)

解决方案1(快速修复):在JSP中添加以下代码

<script src="<%=renderRequest.getContextPath()%>/js/somejs.js"></script> 
<link   href="<%=request.getContextPath()%>/css/mystyles.css" rel="stylesheet"/>

解决方案2(Liferay推荐):liferay-portlet.xml中添加以下代码,让Liferay加载css&amp; js文件。

<header-portlet-css>/css/mystyles.css</header-portlet-css>
<footer-portlet-javascript>/js/somejs.js</footer-portlet-javascript> 

但我建议将所有js和css文件保存为主题并从那里访问