JAVA Web静态资源问题的三种解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzq450013155/article/details/81149603

今天碰到一个问题,SSM项目WEB-INF目录下的静态资源例如.css .js .font等文件无法访问,原因是在web.xml里面配置的springmvc的DispatcherServlet的mapping为/,则Spring MVC将捕获Web容器所有的请求,因此不能对静态资源进行访问

<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>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

下面列出解决方案
方法一:
在springMVC-servlet.xml中配置:

<mvc:default-servlet-handler />

方法二:
在web.xml中DispatcherServlet设置的spingmvc配置文件中加入mvc:resources,例如:

<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>

方法三:
在web.xml中添加servlet-mapping

<servlet-mapping>   
    <servlet-name>default</servlet-name>  
    <url-pattern>*.jpg</url-pattern>     
</servlet-mapping>    
<servlet-mapping>       
    <servlet-name>default</servlet-name>    
    <url-pattern>*.js</url-pattern>    
</servlet-mapping>    
<servlet-mapping>        
    <servlet-name>default</servlet-name>       
    <url-pattern>*.css</url-pattern>      
</servlet-mapping>    

猜你喜欢

转载自blog.csdn.net/hzq450013155/article/details/81149603