我正在创建一个钩子,我想在其中将我的图像添加到自定义 jsp 中。
我在docroot/images/1.jpg中添加了图像
在jsp中我试图使用它来访问它
<img src="<%=request.getContextPath()%>/images/1.jpg" />
但我无法获得图像。
此外,当我尝试打印 <%=request.getContextPath()%> 时,仅打印“/”
谢谢 !!!
建议您不要从您的战争(docroot 文件夹)中获取图像,而是将图像放在 Web 服务器中,以便将来如果您想更改图像,您可以轻松地替换它们。
您可以在您的 jsp 页面中使用以下代码从 Web 服务器检索,
<div class="yourCSSClass">
<liferay-ui:icon src="/yourWebServerPath/1.jpg" label="" message=""/>
</div>
它的另一种味道,
如果您有以下代码,请在您的 JSP 页面中,
<nav class="yourCSSClass"><br/><br/></nav>
然后,在您在 JSP 页面中导入的 CSS 文件中,使用它,
.yourCSSClass{
background: url(yourWebServerPath/1.jpg) no-repeat;
}
PS:在以上两个示例中,正确确定的值yourWebServerPath
很老的问题,但仍然值得回答。
您的钩子将门户的 JSP 替换为您自己的 JSP,但这并不意味着新 JSP的上下文是您的钩子的上下文。
实际发生的是 JSP 在文件系统级别被替换,并由其他 Liferay JSP 和配置调用,因为它们是原始的。
因此request
,您可以访问的是主要的和原始的。
据我所知,没有干净的方法来获取提供覆盖 JSP 的钩子的上下文路径。