当不使用maven构建一个SpringMvc工程时,访问静态资源需要在springmvc.xml里做如下配置:
<mvc:resources location="/webapp/css/" mapping="/css/**" /> <mvc:resources location="/webapp/js/" mapping="/js/**" /> <mvc:resources location="/webapp/style/" mapping="/style/**" /> <mvc:resources location="/webapp/images/" mapping="/images/**" /> <mvc:resources location="/webapp/fonts/" mapping="/fonts/**" /> <mvc:resources location="/webapp/locale/" mapping="/locale/**" /> <mvc:resources location="/webapp/themes/" mapping="/themes/**" />
通过以上配置,页面则可以成功访问到引入的静态文件,但如果是使用maven构建的SpringMvc工程,那么以上的配置方式将无法起作用,应做如下配置。
1. 在web.xml做如下配置
<!-- springmvc的前端控制器 --> <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/springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- 本次需要做的配置,注意位置,要放在配置springmvc的url-pattern之前 -->
<!-- 表示当程序加载符合这些路径的资源时,不会通过dispatchservlet --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> <url-pattern>*.css</url-pattern> <url-pattern>/fonts/*"</url-pattern> <url-pattern>/locale/*"</url-pattern> <url-pattern>/images/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
2. 在springmvc.xml中做如下配置,启用default-servlet,当需要访问静态资源的时候,会根据web.xml中的配置放行
<!-- 启用default-servlet --> <mvc:default-servlet-handler/>
然后重新启动程序即可。