我无法在JSP中显示图像(并且无法通过SRC访问外部Javascript / jQuery等其他内容)。以下JSP页面只包含一个<img>
标记,该标记无法显示SRC所定位的图像。
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form action="Temp.htm" method="post">
<img src="/images/temp.jpg" alt="Not available">
</form>
</body>
</html>
图片位于/WEB-INF/jsp/images
。我还试图改变图像位置,并确保给予SRC的路径的所有时间都是正确的,但事实并非如此。 没有框架的应用程序也是如此。它完美地在那里工作。我在这里缺少什么?
答案 0 :(得分:10)
首先,无法从外部访问/WEB-INF
。
其次,如果您使用/images/temp.jpg
,浏览器将从Web服务器的根目录加载图像,而不是从Web应用程序的根目录(在上下文路径下部署)加载图像。
使用JSTL <c:url>
标记从网络应用的根目录生成绝对路径:
<img src="<c:url value='/images/temp.jpg'/>" alt=.../>
答案 1 :(得分:5)
您无法直接从网络访问位于/WEB-INF/
的文件。该文件夹受到Web访问保护。
在其他位置找到您的图像文件。 /images/temp.jpg
是绝对路径,但您可能需要相对路径。将图像路径指向image/temp.jpg
,并将图像放在直接位于网络根目录下的/images/
文件夹中。例如。 WebContent/images
或src/main/webapp/images
(取决于您的网络根目录)。
答案 2 :(得分:2)
尝试放入webapp目录,而不是WEB-INF。 OBV。不要在jsp目录中筑巢。