SSM 設置靜態資源處理


使用weblogic的虛擬路徑virtual-directory-mapping 在頁面上展示文件服務器上的圖片

<weblogic-web-app> 
    ......省略其他部分
    <context-root>pad-sces</context-root> 
    <virtual-directory-mapping> 
    <local-path>D:/images</local-path> 
    <url-pattern>/poster/*</url-pattern> 
    </virtual-directory-mapping> 
</weblogic-web-app>

這里用D:/images/poster/xxx.jpg 來表示文件服務器上的文件存放路徑。

用<img src="http://localhost:7001/pad-sces/poster/xxx.jpg"/>來展示圖片

不過,這樣有個弊端就是,我們這邊采用的是自動化移交部署,要求測試環境和生產環境打在包里的內容一致,不一致的要使用變量的形式引用包外配置的properties文件中的屬性值。我們這個weblogic.xml是打在ear包中的,而且這個xml文件貌似不能讀到properties中的文件,因此,我們又考慮換一種Spring MVC中的 <mvc:resources>標簽。

spring-mvc里的 <mvc:resources> 及靜態資源訪問

  1. 另外使用一個servlet來處理靜態資源。若我們的資源放置在webapps文件夾下的resources文件夾中,那么我們可以用名字為default的servlet來處理靜態資源。因此我們還需要在上述配置的基礎上加上以下配置:
<servlet-mapping>  
    <servlet-name>default</servlet-name>
    <!--<url-pattern>*.js</url-pattern>-->
    <url-pattern>resources/*</url-pattern>  
</servlet-mapping>
  1. 采用spring自帶<mvc:resources>方法。首先找到你定義的那個servlet的xml文件,如本例子中,servlet的名字叫mvc-dispatcher,因此需要找到mvc-dispatcher-servlet.xml文件,並在該文件中插入以下配置:
<mvc:annotation-driven/>  
<mvc:resources mapping="/resources/**/" location="/resources/"/>

如此就不必另外添加一個mvc來處理靜態資源。而mvc知道靜態資源所處的位置為resources文件夾。

兩種方法都可以將spring mvc配置處理靜態資源。

在SpringMVC3.0之后推薦使用<mvc:resources>方法

<mvc:annotation-driven />
<mvc:resources location="/img/" mapping="/img/**"/>   
<mvc:resources location="/js/" mapping="/js/**"/>    
<mvc:resources location="/css/" mapping="/css/**"/>

說明:

location元素表示webapp目錄;

mapping元素表示以/static開頭的所有請求路徑,如/static/a 或者/static/a/b;

該配置的作用是:DispatcherServlet不會攔截以/static開頭的所有請求路徑,並當作靜態資源

交由Servlet處理。 例如:http://localhost:8080/static/a


參考:

https://blog.csdn.net/yansong_8686/article/details/47355093

https://www.cnblogs.com/linnuo/p/7699401.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM