2013-08-21 3 views
2

У меня есть приложение, которое должно сохранять содержимое (пользовательские аватары) в некотором каталоге, например C: \ avadir. В моем приложении я использую SpringMVC. Мне нужно показать пользовательские аватары. Для этого мне нужно настроить Tomcat для использования этого внешнего каталога. у меня есть такие opthions в моем ROOT.xml, помещенного в % CATALINA_HOME% \ конф \ Catalina \ LOCALHOST:Внешний каталог со статическим содержимым в Tomcat с SpringMVC

<Context path="/ava" docBase="c:/avadir" debug="0" reloadable="true" crossContext="true" /> 

и следующие настройки в мой servlet-context.xml:

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

После набора до сих пор я не могу получить доступ к моему файлу, размещенному в C: \ avadir \ file.jpg по url localhost: 8080/ava/file.jpg. Что-то пропустили?

ответ

6

Вы можете добиться того, чего хотите, без изменения файла ROOT.xml, который должен сделать ваше приложение несколько более простым в управлении.

Так что сначала я удалю определение контекста из ROOT.xml.

Во-вторых, я бы изменил вашу текущую конфигурацию Spring MVC, чтобы обслуживать изображения как часть приложения Spring MVC. Используя тот путь, который вы предложили, я бы обновить свои < ресурсов > определения:

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

Это, по существу, настройку реализации Spring MVC служить ресурсы непосредственно из файловой системы, а не полагаться на второй контексте, который вы настроили в Томкате.

Вы также должны помнить, что сопоставление ресурсов Spring MVC будет относиться к контексту вашего веб-приложения. Например: если ваше приложение развернуто на http://example.com:8080/myApp, то сопоставление/ava фактически будет соответствовать при обращении с URL-адресом http://example.com:8080/myApp/ava/file.jpeg