我对 Spring 很陌生,正在开发 Spring MVC 应用程序。
在 servlet-context.xml 配置文件中,我发现了这些行:
<!-- resources exclusions from servlet mapping -->
<mvc:resources mapping="/assets/**" location="classpath:/META-INF/resources/webjars/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/img/**" location="/img/"/>
<mvc:resources mapping="/js/**" location="/js/"/>
评论说从 servlet 映射中排除资源。
这些行到底是什么意思?我知道这个 servlet-context.xml 应该包含处理 MVC 行为的 DispatcherServlet 配置(这对我来说很清楚),但是前面几行到底做了什么?
你能详细解释一下它的含义和前面的语法吗?
最佳答案
如果您考虑 spring mvc 配置,其中所有请求都映射到 DispatcherServlet
,您可以将这些请求分类为静态资源请求和动态资源请求。
对动态资源的请求与您在 Controller 方法中编程的内容相匹配,并且它们是典型框架处理的主题,例如路径匹配、内容协商、验证、绑定(bind)、转换、格式化、参数解析。
对静态资源的请求是对 .js、.css 或其他一些未创建的资源的请求,而是已随应用程序部署的资源的请求。它们不是由编程 Controller 方法处理,而是由 ResourceHttpRequestHandler
处理。 ,仅仅是因为与动态请求相比,它们具有完全不同的一组处理操作(除了路径匹配之外)。您可以为给定映射定义静态文件的位置(可以是类路径、其他一些 webapp 文件夹或文件系统)、资源的缓存策略、转换(例如修改 css 中的链接、将 LESS 转换为 CSS)
所以并不是说您不想让 servlet 处理静态资源,事实上您可以通过这样做获得很多可能性和灵活性,例如检查 handling static web resources只是静态和动态请求是不同类型操作的主题,并且通过使用 mvc:resources
标签,您可以通过映射指定哪些请求将作为静态请求处理
关于java - Spring MVC 应用程序的这些 mvc :resources mapping tags declared into the servlet-context. xml 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157443/