Не удалось разрешить представление с именем ‘index’ при загрузке Spring

#spring #spring-boot #thymeleaf #spring-webflux

#spring #spring-boot #thymeleaf #spring-webflux

Вопрос:

Загрузка Spring: 2.3.3.ВЫПУСК

Java: 11

Я использую webflux RouterFunction Thymeleaf и сталкиваюсь с ошибкой «Не удалось разрешить представление с именем ‘index'».

index.html находится в разделе «ресурсы / шаблоны». Я поместил некоторый исходный код, который выглядит важным.

Мы не можем использовать Thymeleaf, если мы используем «RouterFunction»?

Пожалуйста, не стесняйтесь оставлять комментарий, если вам нужна более подробная информация.

 ######## handler ###########
@Component
public class ItemHandler {

public RouterFunction<ServerResponse> routes = route()
        .path("/item", builder -> builder.GET("/", this::index))
        .build();

public Mono<ServerResponse> index(ServerRequest request) {
    Map<String, Object> attributes = new HashMap<>();
    attributes.put("items", "Hello");

    return ServerResponse.ok().contentType(MediaType.TEXT_HTML)
            .render("index", attributes);
}
}


######## index.html ###########
<!DOCTYPE html>
<html lang="ja"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
<head>
</head>
<body>
<h1>FluxTest</h1>
</body>
</html>

######## entry point ###########
@SpringBootApplication
public class DemoWebfluxApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoWebfluxApplication.class, args);
    }
}
  

Комментарии:

1. Я вижу inde.html попробуйте самостоятельно

2. извините. опечатка. имя index.html.

Ответ №1:

Свойство по умолчанию, отвечающее за обработку местоположения статических файлов, является spring.resources.static-locations .

Значения по умолчанию являются /META-INF/resources/, /resources/, /static/, /public/ . Вы можете либо переопределить значения по умолчанию, либо поместить свои index.html в одно из этих расположений.

Комментарии:

1. spring.resources.static-locations исправлено и spring.web.resources.static-locations должно использоваться вместо этого.