春季MVC资源



我试图使用资源标签将我的静态元素与Spring MVC联系起来 - 我无法确定的是将它们放置在哪里。

我正在以 -

发布我的链接
<link rel="stylesheet" href="/css/elements.css">

我将文件放在 - webcontent/resources/css/elements.css

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

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

我想念什么吗?

您倒了两个属性。locations是Web App root中文件的位置。mapping是用于从浏览器访问资源的URL模式。因此配置应为

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

如文档中所述。

您在"资源"文件夹中拥有资源,因此您在dispatcher xml中添加了以下行。

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

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

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

尝试一下。它应该起作用。

找到了错误。使用c:url发布绝对路径帮助:)

我现在以

发布我的URL
&lt;link rel="stylesheet" href="&lt;c:url value="/css/slideshow.css" />">

如果您使用的是tomcat的根上下文的位置,则需要这样做。这与其他答案之间的区别在于,我在位置映射中包括应用程序上下文:

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

属性"映射"是相对于类路径的,而"位置"是相对于tomcat的根。(注意:这些不是"相对" URL)

此配置将提供对子文件夹中资源的访问,例如/resources/css/*

最新更新