Spring Framework 6 教學 (十四) MVC 為什麼無法顯示圖片

  • Post category:MVC / Spring 6

Spring Framework 6 為什麼無法顯示圖片,也抓不到 javascript ,甚至連資料夾中的 html 也呈現 404 ?!

原因出在 MVC 設定!

Spring Framework 6 的 web.xml

<url-pattern>/</url-pattern> 這行的設定會把所有網頁的資源都交給 Spring 去處理,因此,當要讀取網站中的圖片, javascript ,其他的資料夾,都會呈現 404!

&lt;servlet>
 &lt;servlet-name>dispatcher&lt;/servlet-name>
 &lt;servlet-class>org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class>
 &lt;/servlet>
 &lt;servlet-mapping>
 &lt;servlet-name>dispatcher&lt;/servlet-name>
 &lt;url-pattern>/&lt;/url-pattern>
 &lt;/servlet-mapping>

Spring Framework 6 的 MVC 設定 dispatcher-servlet.xml

之前設定了 <mvc:annotation-driven >

請再多加一行 <mvc:default-servlet-handler />

 &lt;mvc:default-servlet-handler/>  
 &lt;mvc:annotation-driven />  

就會讓網站中的靜態資源(圖片, javascript ,資料夾,Html檔等),使用原本的處理方式,而非 Spring Framework 來處理。

搭啦!

圖片可以正常出現囉 ^^

使用時機

如果你的 Spring Framework 6 網站,只是提供 Json 的資料,當作 API 使用的話,倒是不一定要設定 <mvc:default-servlet-handler />

若是作為一般的網站,則建議一定要加上去,網站中的其他靜態資源,才能夠正常的使用。