【问题标题】:Spring MVC Static Resource MappingSpring MVC 静态资源映射
【发布时间】:2013-01-27 05:56:50
【问题描述】:

我有以下 servlet 映射 -

  <!--  Mapping Static Resources -->
     <mvc:resources mapping="/css/**" location="/resources/css/" />
     <mvc:resources mapping="/js/**" location="/resources/js/" />
     <mvc:resources mapping="/images/**" location="/resources/images/" />

我在 html 中的图片链接是“/images/folder/imageName.jpg” - 这些图片会给我一个 404,而如果将链接更改为“/images/imageName.jpg”并将图片直接移动到images 文件夹它让我得到图像。

我是否需要以任何方式修改我的 servlet 映射以考虑层次结构?

【问题讨论】:

  • 这看起来是正确的...您是否在 Firebug 中检查了浏览器用来获取图像的 URL?可能存在相对路径问题。
  • 你能给我们实际的文件夹结构吗?从映射我理解 /images 被映射到 '/resources/images/' 假设图像直接在 /resources/images/ 目录下。那么为什么要访问它“/images/folder/imageName.jpg”,除非图像目录是'/resources/images/folder/'

标签: spring spring-mvc


【解决方案1】:

您需要修改图片的链接。当你写

<mvc:resources mapping="/images/**" location="/resources/images/" />

然后您对/resources/images 的HTTP 请求被转换为服务器上的webapp/images 文件夹。所以在 html 中你应该有这样的东西:

<img src="<spring:url value='/resources/images/logo.png'/>"

【讨论】: