Sé libre de compartir nuestro espacio y códigos con otro, apóyanos para hacer crecer esta comunidad.
Solución:
Por defecto, su aplicación Spring Boot sirve static contenido, en su caso imágenes, que se encuentra en las siguientes ubicaciones:
- /static
- /público
- /recursos
- /META-INF/recursos
por lo general, static/images/
tal vez sería el lugar donde Thymeleaf debería esperar el static imágenes que tienen que ser entregadas para su renderizado. Pero como este lugar se trata de static contenido y dado que en general es una mala idea guardar el contenido cargado (dinámico) dentro de su aplicación, recomendaría no hagas eso. ¿Pensó en lo que sucede si su aplicación se vuelve a implementar o se traslada a otra máquina? Tendría que hacer una copia de seguridad / mover las imágenes de una manera engorrosa. Hay mejores soluciones, almacenar el contenido cargado en una ubicación separada fuera de su aplicación (que, por ejemplo, podría ser configurable y también reutilizado por múltiples instancias) o incluso usar una base de datos para almacenar datos de imágenes. Eso también permitiría manejar imágenes en un contexto transaccional (por ejemplo, aislamiento y retrocesos).
Pero si ahora aún desea almacenarlo dentro de su aplicación, puede ampliar las ubicaciones agregando lugares para buscar (en realidad static contenido). Aunque la respuesta de Ajit e incluso la documentación todavía dan consejos para extender la tuya. WebMvcConfigurerAdapter
, personalmente tendería a implementar WebMvcConfigurer en su lugar, porque el primero está en desuso.
En este caso debería verse como:
@Configuration
public class AdditionalResourceWebConfiguration implements WebMvcConfigurer
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry)
registry.addResourceHandler("/images/**").addResourceLocations("file:images/");
Para acceder a la imagen desde su images folder
,
Necesitas anular addResourceHandlers
método de WebMvcConfigurerAdapter
clase como esta:
@Configuration
public class ResourceConfig extends WebMvcConfigurerAdapter
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
registry.addResourceHandler("/images/**").addResourceLocations("file:images/");
Después de eso necesitas agregar /
antes de imágenes en URL como esta: