У меня проблемы с изображениями в приложении Spring Boot + Thymeleaf.
После прочтения множества исправлений я могу показывать изображения на некоторых страницах моего приложения, но на других страницах изображения не отображаются.
Я думаю, что число путей в сделанном запросе задействовано. Похоже, что запросы /myaction
отображают страницы с изображениями, а запросы /myaction/other
отображают страницы без изображений.
В Fomer успешный запрос на получение изображений:
http://localhost:8080/myapp/images/logo.png
В последнем случае неудавшийся запрос на получение изображений:
http://localhost:8080/myapp/myaction/images/logo.png
Я добавляю свою конфигурацию:
В моей реализации WebMvcConfigurerAdapter:
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/"
};
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
registry.addResourceHandler("/**")
.addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}
Класс контроллера:
@Controller
@RequestMapping(path="/myaction")
public class PagosController {
@GetMapping(path="")
public String show(Model model) {
//...
}
@GetMapping(path="/other")
public String show2(Model model) {
//...
}
}
В своем HTML-шаблоне я загружаю изображение следующим образом:
<img th:src="@{images/logo.png}" />
logo.png
Файл logo.png
находится в src/main/resources/static/images
Понятия не имею, почему это происходит. Любая идея о том, почему изображения запрашиваются в http://localhost:8080/myapp/myaction/images/logo.png
? Заранее спасибо.