天天看點

spring 對靜态資源的引用

對靜态資源(css/js/image)的請求 如在web.xml中像如下配置,則表明DispatcherServlet将處理所有的請求,包括image/css/js等。   <servlet-mapping>

  <servlet-name>ssmBank</servlet-name>

  <url-pattern>/</url-pattern>

  </servlet-mapping>

是以需要在spirng配置檔案中配置 <mvc:resources/>        <!-- 建立一個服務于靜态資源的處理器,                将location的路徑 替換為mapping的路徑(mapping屬性為ant風格)-->        <mvc:resources mapping="css/**" location="/static/css/" />        <mvc:resources mapping="js/**" location="/static/js/My97DatePicker/" />

 在jsp頁面中引入 這裡還需要注意絕對路徑與相對路徑的問題 絕對路徑:

路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。

相對路徑:

路徑的寫法,不是由 / 寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成: cd ../man 這就是相對路徑的寫法。

若工程結構如下圖:index.jsp與css檔案在同級的情況下

spring 對靜态資源的引用

         在index.jsp檔案中引入css相關檔案,index.jsp與css檔案夾在同級時,如下這樣寫是沒問題的   < script type="text/javascript" src=" < c:url value='/js/WdatePicker.js' /> " ></ script >         <link href="<c:url value='/css/bootstrap.css' />"  rel="stylesheet"></link>         <link href="<c:url value='/css/app.css' />" rel="stylesheet"></link>

但系!jsp檔案與css檔案夾不在同級(同一根目錄時)問題就出現了,原因是jsp檔案會預設在目前路徑下找   <link href = "<c:url value = '/css/app.css' />" rel = "stylesheet"></link>  value對應的css檔案,即:若jsp的路徑為:/views/index.jsp  則會指向/views/css/app.css 這個路徑的css檔案。這就找不到了啊。 解決的辦法是:從工程目錄路徑開始,明确指明路徑,即這樣<link href="<c:url value='{/工程名}/css/app.css' />" rel="stylesheet"></link> 對應的目錄:

spring 對靜态資源的引用

有什麼說得不對的地方,敬請批評!