resourcehandlerregistry mvc locations example and java css spring spring-mvc

java - mvc - Spring 4 carga de recursos estáticos



spring mvc resources configuration (1)

Obtuve una aplicación MVC de primavera con un grupo de archivos css y js actualmente ubicados en el directorio src/main/java/resources/assets .

Leí los Documentos de Spring y algunos Tutoriales sobre cómo cargar estos archivos para mis plantillas usando la clase ResourceHandlerRegistry . Especialmente pensé que los fragmentos de código de este Tutorial encajarían perfectamente en la estructura de mi proyecto.

Pero siempre obtengo un 404 en mis archivos de recursos.

Aquí está la clase de Aplicación / Configuración con la que estoy corriendo actualmente:

@Configuration @EnableAutoConfiguration @ImportResource("/applicationContext.xml") // only used for jpa/hibernate @EnableWebMvc @ComponentScan(basePackages = "at.sustain.docutools.viewer.presentation") public class Application extends WebMvcConfigurerAdapter { public static void main(String args[]) { SpringApplication.run(Application.class); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/assets/**") .addResourceLocations("classpath:/assets/"); registry.addResourceHandler("/css/**") .addResourceLocations("/css/"); registry.addResourceHandler("/js/**") .addResourceLocations("/js/"); } }

Y aquí un HEADer usado en mis archivos HTML (colocado en recursos / plantillas):

<head> <!-- local Stylesheet --> <link href="css/style.css" rel="stylesheet" /> <!-- local Javascript files --> <script src="js/general.js"></script> <script src="js/xmlhttp.js"></script> <!-- local Javascript libraries --> <script src="js/lib/filter.js"></script> <script src="js/lib/jquery.fs.zoomer.js"></script> <script src="js/lib/jquery.validate.js"></script> </head>

El archivo html se carga correctamente a través de mis clases de controlador, pero al intentar pegar, por ejemplo, mi archivo style.css ( http://localhost:8080/css/style.css ) obtengo un 404 como ya se mencionó.

Parece que no puedo encontrar más recursos que puedan proporcionarme más información sobre este tema para Spring 4. ¿Extraño algunos archivos de configuración? ¿O acaso los registros de manejador de recursos no se ajustan a mi estructura? Estoy esperando tus respuestas.


Usted dice que sus hojas de estilo y sus archivos de JavaScript se encuentran en "/ assets". Voy a suponer que tienes directorios "/ assets / css" y "/ assets / js". Luego, dada la siguiente definición de manejador de recursos:

@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/assets/**") .addResourceLocations("classpath:/assets/"); }

Debería cargar estos recursos en su HTML así:

<link href="/assets/css/style.css" rel="stylesheet" /> <script src="/assets/js/general.js"></script>