Spring Boot отображает изображения на некоторых страницах, но не на других - PullRequest
0 голосов
/ 30 августа 2018

У меня проблемы с изображениями в приложении 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? Заранее спасибо.

1 Ответ

0 голосов
/ 30 августа 2018

Согласно вашей конфигурации, изображения доступны из корня / .

Так что вы должны иметь возможность использовать <img th:src="@{/images/logo.png}" /> на любой странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...