1. 程式人生 > >springmvc專案中實現靜態檔案對映任意位置

springmvc專案中實現靜態檔案對映任意位置

專案釋出後一般圖片都是儲存在檔案伺服器中的。或者再做開發的時候我們是將上傳的圖片儲存在電腦中某個資料夾,專案啟動後直接訪問的話只能使用file://這種方式訪問,當然不靠譜。所以我們使用到了springmvc中的mvc:resource標籤
首先需要修改一下web.xml檔案。保證DispatcherServlet的攔截路徑是/

<servlet>
    <servlet-name>ysmall</servlet-name>
    <servlet-class>
      org.springframework.web.servlet.DispatcherServlet
    </servlet-class
>
<load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ysmall</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

這樣專案中的所有連結都會通過這個servlet訪問,但是當我們修改了這裡後,靜態檔案是無法訪問到的。我們需要到spring的配置檔案中新增如下,使靜態檔案使用預設的servlet進行訪問。

  <mvc:default-servlet-handler/>

然後我們加入想要新增的靜態檔案對映內容,比如我想使用localhost:8080/files/img.jpg訪問我電腦中d盤filesdir資料夾下的img.jpg檔案,那麼使用如下配置。

  <mvc:resources mapping="/files/**" location="file:///D:/filesdir/" />

現在又有一個問題,加入如上內容後,如果controller使用的註解,那麼就會出現無法訪問,需要再spring配置檔案中加入

  <mvc:annotation-driven/>