2013-08-21 59 views
2

我有一個應用程序應該保存內容(用戶頭像)在某些目錄,例如C:\ avadir。在我的應用程序中,我使用了SpringMVC。我需要顯示用戶定義的頭像。爲此,我必須配置Tomcat以使用此外部目錄。 我在的ROOT.xml,放在%CATALINA_HOME%\的conf這樣opthions \卡塔利娜\本地主機:集SpringMVC Tomcat中的靜態內容的外部目錄

<resources mapping="/ava/**" location="/ava/" /> 

後:

<Context path="/ava" docBase="c:/avadir" debug="0" reloadable="true" crossContext="true" /> 
servlet-context.xml

旁邊設置這個設置我仍然無法訪問我的文件放在C:\ avadir \ file.jpg通過url localhost:8080/ava/file.jpg。 有什麼遺漏嗎?

回答

6

你可以在不修改ROOT.xml文件的情況下實現你想要的功能,這會讓你的應用程序更容易管理。

所以首先我會從ROOT.xml中移除Context定義。

其次,我會修改您當前的Spring MVC配置,以將圖像作爲Spring MVC應用程序的一部分提供。使用您建議我將更新您的<資源>定義路徑:

<mvc:resources mapping="/ava/**" location="file:///C:/avadir"/> 

這實質上配置你的Spring MVC實現直接從文件系統服務資源,而不是依賴於你所配置的第二上下文在雄貓。

您還需要記住,Spring MVC資源映射將與Web應用程序的上下文相關。例如:如果您的應用程序部署在http://example.com:8080/myApp,那麼當使用URL訪問時,/ ava映射實際上會匹配http://example.com:8080/myApp/ava/file.jpeg