its contains a tag mvc:resource tag我正在开发一个spring mvc应用程序,其中iam使用基于xml的配置。我想加载我的静态资源。为此,我正在使用标签<mvc:resources location="/assets/" mapping="/resources/**"/>.
我所有的静态资源都存在于Assets文件夹中,因此我正在提供此机。但是在映射中为什么是mapping="/resources/**"
?我没有在资源文件夹中保留任何内容,**代表什么?
有人可以在这里消除我的所有疑问吗?
答案 0 :(得分:0)
<mvc:resources location="/assets/" mapping="/assets/**"/>
更新mapping="/assets/**"
,它将正常工作。在“映射”属性中,应保留匹配的url模式以访问资产文件夹。
**:-表示此路径中有多个目录,或资产目录后为零目录。
举个例子:-
<script type="text/javascript" src="${contextRoot}/assets/js/login.js"></script>
您要在页面中添加Java脚本文件。要添加此js文件,服务器请求将变为:http://localhost:8090/Aashayein/assets/js/login.js。当您使用spring-mvc时,请求将通过调度程序servlet(前端控制器)进行处理。对于此请求Uri,没有标记相应的处理程序(@RequestMapping(“ / assets / js / login.js”)),因此会导致404错误。因此,您必须告诉spring,如果任何请求都带有uri模式“ / assets / **”,则直接查找webapp目录中存在的资产文件夹。为此,我们必须在xml中编写:-
<mvc:resources location="/assets/" mapping="/assets/**"/>
在注释中:-
/*
* Any request with url mapping /assets/** will directly look for /assets
* folder.
*/
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
}