使用Maven的SpringMvc工程通过常规配置无法访问到静态资源

当不使用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/>

 然后重新启动程序即可。

猜你喜欢

转载自www.cnblogs.com/maysky/p/9037155.html