【问题标题】:404 Not Found JS and CSS404 未找到 JS 和 CSS
【发布时间】:2014-05-06 16:21:55
【问题描述】:

我在 Liferay/Tomcat 服务器上部署了一个 portlet。 portlet.xml 正在调用初始化参数“/index.html”。此文件在我的门户上呈现良好。

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

我这样链接它们:

<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 的名称将来可能会更改,我必须重命名所有 &lt;script&gt;&lt;link&gt; 引用。

有什么办法可以解决这个问题吗?我需要全局上下文路径吗?

【问题讨论】:

    标签: liferay http-status-code-404


    【解决方案1】:

    Solution1(快速修复):在您的 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 和 js 文件。

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

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

    【讨论】:

    • 很高兴您包含了推荐的最佳实践。谢谢。
    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 2016-05-22
    • 2018-04-16
    • 2018-09-14
    • 2020-05-07
    • 2014-09-09
    • 2016-09-12
    • 1970-01-01
    相关资源
    最近更新 更多