项目环境:JDK1.8;SpringMVC4.3.18;阿里云Maven3.3.9 1. web.xml配置
<servlet>
<servlet-name>spring_mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:resources/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring_mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
dispatcher-servlet.xml配置
<mvc:annotation-driven />
<!-- 处理静态资源访问 -->
<!--<mvc:default-servlet-handler />-->
<mvc:resources mapping="/css/**" location="/static/css/" />
<mvc:resources mapping="/images/**" location="/static/images/" />
<mvc:resources mapping="/js/**" location="/static/js/" />
页面引用
页面访问
项目结构
Spring相关包引用
本人在网上查询了很多方法,都说使用这个映射需要在其前面加上。但是我的项目里一开始配置springmvc的时候就已经有annotation-driven这个注解了,仍然无法访问静态资源。很是纳闷。然而使用这个注解就可以访问静态资源。再次发出问题,主要是想解决为什么annotation-driven这个注解不起作用,希望有过类似经验或者知道的朋友指导一下,甚是感激。
遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Spring MVC中,处理静态资源(如CSS、JavaScript、图片等)通常需要特殊的配置来告诉DispatcherServlet不要拦截对这些资源的请求。你提到的<mvc:resources>
标签是用来定义静态资源映射的正确方式,而<mvc:annotation-driven>
则是用来启用Spring MVC的注解驱动功能,比如自动注册处理器、转换器、验证器等。
关于你的问题,<mvc:annotation-driven>
不起作用于静态资源访问的原因在于它的职责并不包括直接处理静态资源。这个标签主要是为了激活基于注解的配置,而不是直接与静态资源映射相关。因此,即使你已经添加了<mvc:annotation-driven>
,仍然需要单独配置静态资源的处理规则。
确保你的dispatcher-servlet.xml
文件中包含正确的静态资源映射配置,如下所示:
<mvc:resources mapping="/static/**" location="/static/"/>
这里的mapping
属性指定了URL模式,location
属性则指定了静态资源的实际路径。例如,上述配置会将所有以/static/
开头的请求映射到Web应用的/static/
目录下查找相应的静态资源。
另外,如果你使用的是Spring 4.3.18及以上版本,还可以考虑在web.xml中添加一个默认的Servlet来处理静态资源,如下所示:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
或者,如果使用Spring Boot的话,它有内置的静态资源处理机制,通常不需要手动配置。
综上所述,<mvc:annotation-driven>
不起作用于静态资源访问是正常的,因为这不是它的设计目的。你需要通过<mvc:resources>
或类似手段专门配置静态资源的处理逻辑。