我试图使用资源标签将我的静态元素与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<link rel="stylesheet" href="<c:url value="/css/slideshow.css" />">
如果您使用的是tomcat的根上下文的位置,则需要这样做。这与其他答案之间的区别在于,我在位置映射中包括应用程序上下文:
<mvc:resources location="/webapp-name/resources/" mapping="/resources/**"/>
属性"映射"是相对于类路径的,而"位置"是相对于tomcat的根。(注意:这些不是"相对" URL)
此配置将提供对子文件夹中资源的访问,例如/resources/css/*