springMVC静态资源访问

时间:2021-11-27 06:56:18

  springMVC默认是访问不到静态资源的,如css,js等,需要在xml里进行配置

  保证已经配置好了 web.xml,

<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet> <servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
<url-pattern>/</url-pattern>
</servlet-mapping>

 这里先给出一个结构目录,我现在要访问 res文件夹下js,在spirngmvc的配置文件中 加入以下配置 

 <mvc:annotation-driven />
<!--1--> <mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>
 <!--2--><mvc:resources mapping="/res/js/**" location="/res/js/" cache-period="0"/>
<!--3--><mvc:resources mapping="/css/**" location="/css/" cache-period="31556926"/>

  

    mapping="/res/js/**"表示我要访问res/js这个路径下的所有静态资源,包括res/js/scrpit这个路径下的,location是访问路径路径,cache-period="0"是静态资源的缓冲期限,maven web工程,默认是访问webapp下的资源,WEB-INF下的资源访问需要内部的action跳转才可以,也算是一种安全保护。配置好后,可以测试一下,项目在本地启动后 输入  127.0.0.1:8080/demo/res/js/jquery.1.7.2.min.js就可以访问到了 ,demo是我的项目发布名称,截图的时候没给截上。

注意:使用一下方式进行静态资源拦截时, 一定要加上 <mvc:annotation-driven />,不然会访问不到controller,报404错误

  

springMVC静态资源访问