Spring Boot не загружает статические ресурсы, это зависит от глубины RequestMapping

У меня проблема с загрузкой файла в статическую папку в приложении весенней загрузки.

Проблема заключается в том, что глубина RequestMapping больше 2, например @RequestMapping("spring/xyz")

Одинарная глубина @RequestMapping("spring") работает хорошо, но глубина 2 имеет префикс «весна», это подключение localhost: 8080/spring/ «статическая папка»

Я нашел половину решения здесь

моя структура папок:

static/css/some.css  
static/templates/velocity.vm

случай 1: работает хорошо

java:
    @RequestMapping("spring")

html:
    <link rel="stylesheet" href="css/some.css">

case2: работает хорошо

java:
    @RequestMapping("spring/xyz")

html:
    <link rel="stylesheet" href="../css/some.css">

case3: не работает

java:
    @RequestMapping("spring/xyz/123")

html:
    <link rel="stylesheet" href="../css/some.css">

это называется 'http//localhost/spring/xyz/css/some.css'

case3: работает хорошо

java:
    @RequestMapping("spring/xyz/123")

html:
    <link rel="stylesheet" href="../../css/some.css">

case4: работает хорошо

java:
    @RequestMapping("123")

html:
    <link rel="stylesheet" href="../../css/some.css">

Оно работает!! даже если я использую относительный путь ../../. Я не знаю, почему это работает.

На самом деле я не очень хорошо понимал Spring Boot API, так как считаю, что ViewResoler использует что-то, загружающее другие статические ресурсы.

Я хочу знать этот механизм пути загрузки и как по ссылке URL-адреса RequestMapping вызывать «http//localhost/spring/xyz/css/some.css»

Я ценю любой ответ, спасибо~!!

Я имею в виду ту же проблему на spring.io здесь от "металлист" и "Брайан Клозел"


person DANIEL K    schedule 29.11.2016    source источник
comment
Просто используйте косую черту в начале адреса: <link rel="stylesheet" href="/spring/xyz/css/some.css">   -  person Nick    schedule 29.11.2016
comment
вау хорошо работает. Я хочу знать, как работать с этим сзади. Можете ли вы дать какой-нибудь весенний документ или объяснить его? Спасибо @NickSavenia   -  person DANIEL K    schedule 29.11.2016
comment
stackoverflow.com/a/39545949/6066470   -  person Nick    schedule 29.11.2016
comment
@NickSavenia очень полезно!!!   -  person DANIEL K    schedule 29.11.2016


Ответы (1)


если вы используете тимелеаф, вы также можете указать путь как:

<link rel="stylesheet" th:href="@{/css/main.css}"
href="../static/css/main.css" />

он работал правильно для меня на любой глубине.

person sourabh shinde    schedule 29.11.2016