Spring MVC资源

时间:2012-10-27 16:10:30

标签: spring-mvc

我正在尝试使用资源标记将我的静态元素与Spring MVC链接 - 我无法弄清楚的是放置它们的位置。

我将我的链接发布为 -

<link rel="stylesheet" href="/css/elements.css">

我已将文件放在 - 的WebContent /资源/ CSS / elements.css

我在servlet中使用的资源标记是 -

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

我错过了什么吗?

4 个答案:

答案 0 :(得分:2)

你颠倒了两个属性。 locations是文件在Web应用根目录中的位置。 mapping是用于从浏览器访问资源的url模式。所以配置应该是

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

the documentation中所述。

答案 1 :(得分:2)

您的资源位于“资源”文件夹中,因此您在调度程序xml中添加了以下行。

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

此资源文件夹必须位于“webcontent”文件夹中。 然后,您需要使用上下文路径访问资源。

<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/elements.css">

试一试。它应该工作。

答案 2 :(得分:0)

发现错误..使用c:url发布绝对路径帮助:)

我现在将我的网址发布为

&lt;link rel="stylesheet" href="&lt;c:url value="/css/slideshow.css" />">

答案 3 :(得分:0)

如果您使用的位置相对于Tomcat的根上下文,那么您需要这样做。这个和其他答案之间的区别在于我将应用程序上下文包含在位置映射中:

<mvc:resources location="/webapp-name/resources/" mapping="/resources/**"/>

属性“mapping”是相对于类路径而“location”是相对于Tomcat的根。 (注意:这些不是'相对'网址)

此配置将提供对子文件夹(例如/resources/css/*

)中资源的访问