Ответ 1
<mvc:resources>
может обслуживать ресурсы извне, вам нужно использовать обычный Spring синтаксис пути ресурса:
<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir/"/>
в веб-приложении, мне нужно обслуживать статическое содержимое (изображения), расположенное вне каталога контекста приложения. Для общей архитектуры приложения требуется, чтобы я использовал Tomcat для этого. Я думал, что мне может пригодиться Spring <mvc:resources>
, чтобы настроить сопоставление URL-адресов приложений и содержимого каталога. Но атрибут AFAIK it mapping
обрабатывает только контекстные относительные или сопоставления классов. Следовательно, что я хотел бы использовать:
<mvc:resources location="/images/**" mapping="/absolute/path/to/image/dir"/>
не работает. Поскольку я предпочел бы избежать написания простого сервлета передачи файлов, я был бы рад, если бы кто-нибудь мог дать мне несколько указателей на существующие решения/обходные решения Spring.
Большое спасибо.
Гомер
<mvc:resources>
может обслуживать ресурсы извне, вам нужно использовать обычный Spring синтаксис пути ресурса:
<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir/"/>
Существует еще одна простая коррекция
код должен быть
<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir/"/>
Вы заметили разницу? Вы должны положить '/' в конце абсолютного пути.
или вы можете использовать конфигурацию java
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String rootPath = System.getProperty("user.home");
String imagePath = "file:"+rootPath + File.separator + "tmpFiles/";
System.out.println(imagePath);
registry.addResourceHandler("/resources/**").addResourceLocations("resources/");
registry.addResourceHandler("/tmpFiles/**").addResourceLocations(imagePath);
}
Его работа для меня.