Я пытаюсь использовать WebJars-Locator с приложением Spring-Boot для сопоставления ресурсов JAR. На их веб-сайте я создал RequestMapping следующим образом:
@ResponseBody
@RequestMapping(method = RequestMethod.GET, value = "/webjars-locator/{webjar}/{partialPath:.+}")
public ResponseEntity<ClassPathResource> locateWebjarAsset(@PathVariable String webjar, @PathVariable String partialPath)
{
Проблема в том, что переменная partialPath должна включать все, что находится после третьей косой черты. Однако в конечном итоге он ограничивает само отображение. Этот URI отображается правильно:
http://localhost/webjars-locator/angular-bootstrap-datetimepicker/datetimepicker.js
Но этот вообще не отображается на обработчик и просто возвращает 404:
http://localhost/webjars-locator/datatables-plugins/integration/bootstrap/3/dataTables.bootstrap.css
Основное различие заключается в количестве компонентов в пути, которые должны обрабатываться регулярным выражением (". +"), Но не работают, если в этой части есть косая черта.
Если это помогает, это указывается в журналах:
2015-03-03 23: 03: 53.588 INFO 15324 --- [main] swsmmaRequestMappingHandlerMapping: Сопоставлено "{[/webjars-locator/{webjar}/{partialPath:.+} provided,methods=[GETpting,params= [], заголовки = [], потребляет = [], производит = [], custom = []} "в общедоступном org.springframework.http.ResponseEntity app.controllers.WebJarsLocatorController.locateWebjarAsset (java.lang.String, java.lang .String) 2
Есть ли какой-то тип скрытых настроек в Spring-Boot, чтобы включить сопоставление шаблонов регулярных выражений в RequestMappings?
http://localhost:8080/webjars-locator/angular-bootstrap/datetimepicker/datetimepicker.js
. Ноhttp://localhost:8080/gradle-spring-mvc-web-project/webjars-locator/angular-bootstrap/datetimepicker.js
работает нормально. @robross - Подтвердите то же самое. - person Mithun   schedule 04.03.2015