【问题标题】:Why doesn't my image show in a jsp? [confused]为什么我的图片没有在 jsp 中显示? [使困惑]
【发布时间】:2013-12-13 11:26:30
【问题描述】:

我是 Spring MVC 和 Spring 框架的新手,我正在努力学习它。

我使用 Spring Tool Suite 做了一个小的“hello world”项目,遇到了一个奇怪的问题。所以我开始了一个新的 Spring Project 并选择了 Spring MVC Project。我创建了一个控制器和一个视图 jsp 页面来显示一个 hello 页面。一切正常。这里没有问题。 然后我决定在我的jsp页面中包含一张图片。我将一张图片复制到“webapp/resources”文件夹中,并在我的视图页面中放置了这样的 img 标签(其路径为“webapp/WEB-INF/views/hello.jsp”)。标签看起来像这样:

当我运行应用程序并转到我的视图页面时,它不会在 STS 内部浏览器或我的常规浏览器中显示图像。我试图从我的浏览器查看页面的源代码,源代码确实有 img 标签,但由于某种原因它没有显示。

我尝试将图像与我的 jsp 文件一起直接放在“webapp/WEB-INF/views”中,并将标签更改为:

但仍然没有成功。最后,我将此归咎于我缺乏创建 jsp 的经验,并试图打开我的常规 Eclipse IDE(即与 STS 不同的一个)并创建了一个动态 Web 项目,我将标签插入到一个 jsp 文件中,并将图片复制到其中一个项目的子文件夹。我运行了这个项目,现在它可以工作了;图片已显示。

为什么会这样?为什么它在常规 Web 项目中有效,而在 Spring MVC 项目中无效?感谢您的宝贵时间,如果您能帮助我,我将不胜感激!

【问题讨论】:

  • 尝试打开浏览器开发者工具,在“网络”选项卡下,您将看到对图像的请求和状态。
  • 请分享失败的请求
  • 状态是“404 not found” 我在这里截取了我的浏览器截图img802.imageshack.us/img802/3041/9tt5.jpg
  • 我试图编辑我的 url 路径到 img 标签内的图像,如果我给出一个相对于项目文件夹的 url,它就可以工作。现在我的 img 标签看起来像这样: 我不知道为什么它不能像我以前使用的那样使用来自 jsp 文件的相对路径,但它没有现在没那么重要了。非常感谢!
  • 只是一个猜测。如果您使用一些外部副本将图像复制到 eclipse 工作区,eclipse 不知道,您需要“刷新”eclipse 导航器或包资源管理器视图。然后图像将在 eclipse 中可见,并且 eclipse 可以将其发布到您的 webapp。

标签: java eclipse jsp spring-mvc spring-tool-suite


【解决方案1】:
I tried to put the image directly in "webapp/WEB-INF/views"

图片不应位于/WEB-INF/ 下,因为此文件夹在应用程序外无法访问。它应该在webapp 下,例如webapp/resources/myLogo.png 然后像这样使用它:img src 中的resources/myLogo.png

【讨论】:

    【解决方案2】:

    jsp 文件不是普通的 html 文件。 您应该使用<c:url /> 标签来确保您的资源路径是从项目的根目录计算的:

    <img src='<c:url value="/img/mylogo.png"/>' class="logo"/>
    

    mylogo.png 在 WebContent/img/ 中的位置

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 2013-07-17
      相关资源
      最近更新 更多