2013-08-21 32 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