1. 程式人生 > >spring mvc 頁面訪問圖片或者js等靜態檔案路徑出錯問題

spring mvc 頁面訪問圖片或者js等靜態檔案路徑出錯問題

這是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,訪問頁面圖片正常顯示