es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spring Boot sirve imágenes estáticas desde una carpeta externa.

Pregunta

Tengo esta estructura de proyecto:

  • api
      src/main/java
          -algunas clases
      informes /
          -capturas de pantalla
              - imageOne.png
    

Quiero servir la imagen imageOne.png así: localhost:8080/imageOne.png

Tengo esta configuración
“`
@Configuration
public class Configurer implements WebMvcConfigurer {
private static final Logger LOG = LoggerFactory.getLogger(Configurer.class);
private final String RESOURCE_LOCATION = "file:/api/informes/capturas de pantalla";
private final String ANT_PATH_EXPRESSION="/**";
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {</p>

<pre><code> registry
.addResourceHandler(ANT_PATH_EXPRESSION)
.addResourceLocations(RESOURCE_LOCATION);

}
</code></pre>

/**
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

<pre><code> return builder.sources(ApiRestApplication.class);
}
*/

@Override
public void addCorsMappings(CorsRegistry registry) {

registry.addMapping("/**");

}
</code></pre>

“`

Pero no está funcionando y cada vez que hago localhost:8080/imageOne.png devuelve:

        Hubo un error inesperado (tipo=No encontrado, estado=404).

Necesito ayuda para encontrar dónde cometí un error en el código.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con la configuración de ResourceHandlerRegistry. Parece que estás tratando de servir la imagen desde el directorio file:/api/reports/screenshots, pero ResourceHandlerRegistry no está configurado correctamente.

    Puede intentar cambiar RESOURCE_LOCATION a file:api/reports/screenshots/ y ANT_PATH_EXPRESSION a /imageOne.png. Esto debería permitirle acceder a la imagen en localhost:8080/imageOne.png.

    También puede verificar la configuración de CorsRegistry para asegurarse de que esté permitiendo solicitudes desde localhost:8080.

Comments are closed.