【问题标题】:Can't display images in JSP无法在 JSP 中显示图像
【发布时间】:2012-02-20 18:28:09
【问题描述】:

我无法在 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 的路径始终正确,但事实并非如此。 没有框架的应用程序也是如此。它在那里完美地工作。我在这里错过了什么?

【问题讨论】:

  • 你应该首先意识到这与 Spring 和 Hibernate 完全无关。

标签: java jsp


【解决方案1】:

首先,/WEB-INF 无法从外部访问。

其次,如果您使用/images/temp.jpg,浏览器将从网络服务器的根目录加载图像,而不是从您的网络应用程序的根目录(部署在上下文路径下)。

使用 JSTL &lt;c:url&gt; 标签从 web-app 的根目录生成绝对路径:

<img src="<c:url value='/images/temp.jpg'/>" alt=.../>

【讨论】:

    【解决方案2】:

    您无法直接从 Web 访问位于 /WEB-INF/ 中的文件。该文件夹受到网络访问保护。

    在其他地方找到您的图像文件。 /images/temp.jpg 是绝对路径,但您可能需要相对路径。将您的图像路径指向image/temp.jpg 并将图像放在位于您的Web 根目录下的/images/ 文件夹中。例如。 WebContent/imagessrc/main/webapp/images(取决于您的网络根目录)。

    【讨论】:

      【解决方案3】:

      尝试放入webapp目录,而不是WEB-INF。观察。不要嵌套在 jsp 目录中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 2014-05-20
        • 1970-01-01
        • 1970-01-01
        • 2012-06-28
        • 2019-09-29
        相关资源
        最近更新 更多