Spring MVC 讀取靜態資源時404錯誤


背景:web.xml配置時攔截策略是攔截所有請求:

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

 

解決步驟:

1、把靜態資源放在項目根目錄webroot下,,不放在WEB-INF下

2、增加配置,過濾對靜態資源的攔截:(以下二選一,前者效率較高,但每種資源都要配置一個servet-mapping;而后者較靈活)

方法一、在web.xml中增加如下配置:

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

方法二、或者在springmvc-servlet.xml中增加如下配置(以css文件為例):

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

 特別地,通過如下這條配置可以訪問所有資源

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

 

 

通過以上方法,就可以解決訪問靜態資源時報404的問題,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM