1. 程式人生 > >Spring MVC:解決靜態資源無法訪問的問題

Spring MVC:解決靜態資源無法訪問的問題

解決靜態資源不能訪問的問題,解決方式有三種:

  • 使用defaultServlet
    開啟tomcat中conf/web.xml,在這個檔案中有一個叫做DefaultServlet的配置,當系統找不到處理某次url請求該交由誰處理的時候,就會交給這個servlet處理。我們可以通過使用這個DefaultServlet來處理靜態資源,在你的系統中的web.xml檔案中新增下面配置,要新增在DispatcherServlet的前面,這樣系統就會將帶有下面字尾名的請求交給defaultservlet來處理:
    <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> 
  • 使用mvc:default-servlet-handler
    在springmvc.xml檔案中新增下面配置即可,該方式會對所有的請求進行處理,然後交由相應的servlet,這種方式其實最終也是由DefaultServlet來處理:

     

      <mvc:default-servlet-handler/> 
    
  • 使用mvc:resources
    在spring mvc中提供了mvc:resources標籤用來解決靜態資源無法訪問的問題,只需要在springmvc.xml的配置檔案中新增下面內容即可,這樣會交給spring mvc的ResourceHttpRequestHandler類來處理:

     

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

    其中:

    • mapping 表示對該資源的請求。注意,後面是兩個星號**。
    • location 表示靜態資源所在目錄,在我的專案中就在webapp下建立一個images資料夾,我會將所有的圖片放到這個資料夾下。