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.
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 directoriofile:/api/reports/screenshots
, peroResourceHandlerRegistry
no está configurado correctamente.Puede intentar cambiar
RESOURCE_LOCATION
afile:api/reports/screenshots/
yANT_PATH_EXPRESSION
a/imageOne.png
. Esto debería permitirle acceder a la imagen enlocalhost:8080/imageOne.png
.También puede verificar la configuración de
CorsRegistry
para asegurarse de que esté permitiendo solicitudes desdelocalhost:8080
.