spring mvc 頁面訪問圖片或者js等靜態檔案路徑出錯問題
阿新 • • 發佈:2019-01-30
這是web工程的結構,圖片放在images資料夾下,js檔案放在resource資料夾下
然後就是進行spring mvc的配置,我上一篇文章就有講到怎麼去配置,但只是最簡單的配置一下。
訪問頁面成功後,下面就是對圖片或者js等靜態資原始檔的訪問,在success.jsp頁面加入以下程式碼,如下(圖片和js檔案都是以自己的為準,這裡只是以我的為例)
<body> This is my success JSP page. <br> <img src="/images/1.png"> </body> <script src="/resource/jquery.panorama.js"></script>
當我們再次訪問該頁面時,發現圖片顯示錯誤和js引入錯誤
原因:web.xml配置檔案配置了
<servlet-mapping>
<servlet-name>springTest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
"/"攔截了所有請求會導致靜態資源無法訪問
發生這種問題一共有兩種方法解決
方法一:
在web.xml中引入spring mvc 之前加入如下程式碼即可(根據自己專案需求配置即可)
方法二:<!-- 配置型別檔案 --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping> <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>*.png</url-pattern> </servlet-mapping>
在引入的springmvc.xml檔案中加入
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/resource/" mapping="/resource/**"/>
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
其中 location 中的值代表的是所放的資原始檔的位置,mapping的值是代表所訪問的路徑,如(<img src="/images/1.png">)
配置完所有檔案後,資原始檔就可以引用了,重新啟動tomcat,訪問頁面圖片正常顯示