Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

311
Vistas
Thymeleaf no puede detectar plantillas dentro del proyecto spring-boot

Tengo la siguiente estructura de proyecto en mi aplicación de arranque Spring, en la que quiero usar Thymeleaf

 projectName -Gradle-Module1(Spring boot module) -build -src -main -resources -templates index.html build.gradle -Gradle-Module2 ... build.gradle ...

pero Spring-Boot no puede encontrar mi directorio de plantillas y muestra una advertencia

No se puede encontrar la ubicación de la plantilla: classpath:/templates/ (agregue algunas plantillas o verifique su configuración de Thymeleaf)

PD: estoy usando @EnableAutoConfiguration

En mi código de controlador estoy haciendo algo como:

 @Controller @EnableAutoConfiguration public class BaseController { @RequestMapping(value = "/") public String index() { return "index.html"; } }

y el archivo index.html solo imprime hola mundo.

Por lo general, debería buscar dentro de src/resources/templates/ (supongo que del mismo módulo Gradle), pero de alguna manera no puede encontrarlo.

Cuando trato de acceder a localhost:8080 obtengo el siguiente error

Error al resolver la plantilla "index.html", es posible que la plantilla no exista o que ninguno de los solucionadores de plantillas configurados pueda acceder a ella

¿Hay algo que me estoy perdiendo?
Cualquier sugerencia apreciada. Gracias.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Tienes que configurar Thymeleaf de la siguiente manera:

 @Configuration public class ThymeleafConfig { @Bean public SpringResourceTemplateResolver templateResolver() { SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setCacheable(false); templateResolver.setPrefix("classpath:/templates/"); templateResolver.setSuffix(".html"); return templateResolver; } @Bean public SpringTemplateEngine templateEngine() { SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine(); springTemplateEngine.addTemplateResolver(templateResolver()); return springTemplateEngine; } @Bean public ThymeleafViewResolver viewResolver() { ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setTemplateEngine(templateEngine()); viewResolver.setOrder(1); return viewResolver; } }

Spring doc recomienda agregar la anotación @EnableAutoConfiguration a su clase principal @Configuration .

También parece que tiene una estructura de proyecto incorrecta, la jerarquía de paquetes típica es:

 src |- main |- java |- resources |- static |- templates |- test

En este caso, sus plantillas estarán en src/main/resources/templates , no en src/resources/templates/ .

about 4 years ago · Santiago Trujillo Denunciar

0

Solo debe devolver el nombre del archivo. Por ejemplo, sin el .hmtl

 @RequestMapping(value = "/") public String index() { return "index"; }
about 4 years ago · Santiago Trujillo Denunciar

0

@GetMapping("/") public String index() { return "index"; }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda