Si te encuentras con algo que no entiendes puedes comentarlo y haremos todo lo posible de ayudarte lo más rápido posible.
Solución:
Puedes agregar el tuyo static controlador de recursos (sobrescribe el predeterminado), por ejemplo
@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
registry.addResourceHandler("/**").addResourceLocations("file:/path/to/my/dropbox/");
Hay algo de documentación sobre esto en Spring Boot, pero en realidad es solo una función estándar de Spring MVC.
También desde spring boot 1.2 (creo) simplemente puede configurar spring.resources.staticLocations
.
Springboot (a través de Spring) ahora facilita la adición de controladores de recursos existentes. Vea la respuesta de Dave Syers. Para agregar a lo existente static controladores de recursos, simplemente asegúrese de usar una ruta de controlador de recursos que no anule las rutas existentes.
Las dos notas “también” a continuación siguen siendo válidas.
. . .
[Edit: The approach below is no longer valid]
Si quieres ampliar el valor por defecto static manejadores de recursos, entonces algo como esto parece funcionar:
@Configuration
@AutoConfigureAfter(DispatcherServletAutoConfiguration.class)
public class CustomWebMvcAutoConfig extends
WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
String myExternalFilePath = "file:///C:/Temp/whatever/m/";
registry.addResourceHandler("/m/**").addResourceLocations(myExternalFilePath);
super.addResourceHandlers(registry);
la llamada a super.addResourceHandlers
configura los controladores predeterminados.
También:
- Tenga en cuenta la barra diagonal final en la ruta del archivo externo. (Depende de sus expectativas para las asignaciones de URL).
- Considere revisar el código fuente de WebMvcAutoConfigurationAdapter.
Basado en la respuesta de @Dave Syers, agrego la siguiente clase a mi proyecto Spring Boot:
@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter
private static final Logger LOG = LoggerFactory.getLogger(StaticResourceConfiguration.class);
@Value("$static.path")
private String staticPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
if(staticPath != null)
LOG.info("Serving static content from " + staticPath);
registry.addResourceHandler("/**").addResourceLocations("file:" + staticPath);
// see https://stackoverflow.com/questions/27381781/java-spring-boot-how-to-map-my-my-app-root-to-index-html
@Override
public void addViewControllers(ViewControllerRegistry registry)
registry.addViewController("/").setViewName("redirect:/index.html");
Esto me permite iniciar mi aplicación Spring Boot con el parámetro --static.path
me gusta
java -jar spring-app-1.0-SNAPSHOT.jar --static.path=/path/to/my/static-files/
Esto puede ser muy útil para el desarrollo y las pruebas.
Reseñas y puntuaciones del post
Si te sientes a gusto, puedes dejar un post acerca de qué te ha impresionado de este escrito.