Сопоставление статических ресурсов Spring: контроллер против addResourceHandler
Я пытаюсь сопоставить определенный набор ресурсов (аудио) с контроллером. Но ресурсы /** отображаются на все ресурсы. Как я могу изолировать конкретный запрос ресурса, чтобы он не проходил через статическое сопоставление ресурсов Spring, а только для моего контроллера? Является ли перемещение аудиоресурсов в другую папку, кроме ресурсов, единственным решением?
Например:
Структура папки:
/resources/js
/resources/css
/resources/audio
Сопоставление ресурсов с помощью Spring Web Config:
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry)
{
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/")
...
}
Контроллер ресурсов:
public class ResourceController {
@RequestMapping(value = "/resources/audio",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public Resource getAudio(...) {
}
....
}
2 ответа
Является ли перемещение аудиоресурсов в другую папку, кроме ресурсов, единственным решением?
В чем проблема с этим? Кажется идеальным: обычным и интуитивным для меня. Если это не статично, не делайте его статичным.
Насколько я знаю, нет способа указать исключение в пути муравья. И я думаю, что по этой причине многие утилиты, основанные на сопоставлении пути муравья, предоставляют путь включения и исключения.
Но в любом случае было бы опасно в смысле будущих эволюций иметь под /resources
данные, которые будут обслуживать контролеры, также сказал НимЧимпский.