在Spring Petclinic中,以下标记用于静态内容。
"<mvc:resources mapping="/resources/**" location="/resources/"/> "
但我在理解这方面遇到了问题,因为映射和位置是相同的。那么这个标签解决的目的是什么?如果css文件请求是这样的。
“spring:url value =”/ resources / css / petclinic.css“var =”petclinicCss“”
然后在执行mvc:resources标记之后转换后的URL是什么。
答案 0 :(得分:2)
<mvc:resources mapping="/resources/**" location="/resources/"/>
来自此网址格式/resources/**
的任何请求,Spring将查找/resources/
mapping
是网址格式location
醇>
Configuring Serving of Resources
示例用法,
使用JSTL <c:url>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.js" />"></script>
<spring:url value="/resources/images/favicon.ico" var="favicon" />
答案 1 :(得分:0)
正如所说,&#34;位置&#34;是您的文件所在和&#34;模式&#34;用于调用它们的URL。
你会理解这个例子。假设我们有这个WebContent文件夹结构:
-WebContent
-META-INF
-WEB-INF
-assets
-css
*myview.css
-js
-view
*myview.jsp //or html or any kind of view format)
现在,在spring调度程序中,我使用这样的标记:
<mvc:resources mapping="/resources/**" location="/WEB-INF/assets/" />
然后,在我的&#34; myview.jsp&#34;打电话给#34; myview.css&#34;我必须写这个:
<link href="<c:url value="/resources/css/myview.css" />" rel="stylesheet" type="text/css">
事实上,Spring调度员所做的是以&#34; / reources /&#34;开头的所有网址,由[mapping =&#34; / resources / **]表示(以&#34开头;资源&#34;和**意味着无论结束)它取代了&#34; / resources /&#34; by&#34; / WEB-INF / assets /&#34; (由location =&#34; / WEB-INF / assets /&#34;配置)并将其余的URL附加到&#34; / WEB-INF / assets /&#34;完成项目结构中资源的位置。
我希望现在很清楚