Spring Framework 6 為什麼無法顯示圖片,也抓不到 javascript ,甚至連資料夾中的 html 也呈現 404 ?!
原因出在 MVC 設定!
Spring Framework 6 的 web.xml
<url-pattern>/</url-pattern> 這行的設定會把所有網頁的資源都交給 Spring 去處理,因此,當要讀取網站中的圖片, javascript ,其他的資料夾,都會呈現 404!
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Spring Framework 6 的 MVC 設定 dispatcher-servlet.xml
之前設定了 <mvc:annotation-driven >
請再多加一行 <mvc:default-servlet-handler />
<mvc:default-servlet-handler/>
<mvc:annotation-driven />
就會讓網站中的靜態資源(圖片, javascript ,資料夾,Html檔等),使用原本的處理方式,而非 Spring Framework 來處理。
搭啦!
圖片可以正常出現囉 ^^
使用時機
如果你的 Spring Framework 6 網站,只是提供 Json 的資料,當作 API 使用的話,倒是不一定要設定 <mvc:default-servlet-handler /> 。
若是作為一般的網站,則建議一定要加上去,網站中的其他靜態資源,才能夠正常的使用。