Tengo que iniciar una aplicación Angular 1 con backend Java. Pensé en usar la misma estructura de carpetas de una anterior realizada meses antes con Angular 1 como frontend y Storngloop como backend.
Mi aplicación web frontend está compuesta por esta estructura de carpetas:
src | main | webapp | client Dentro de la carpeta de la aplicación hay toda la aplicación compuesta por subcarpetas que dentro de otros archivos .css, .js, .html (en cada carpeta hay una parte de mi aplicación. Por ejemplo: carpeta de formulario de inicio de sesión, con sus .css , .html y .js dentro y así sucesivamente...).
Algo como:
client | login | login.html | login.css | login.js stuff | stuff.html | stuff.css | stuff.js y en index.html haría (2) :
<link rel="stylesheet" href="client/login/login.css"> ... <script src="client/login/login.js"></script> Así que pensé en configurar mi ResourceHandlerRegistry de la siguiente manera (1) :
@Configuration @EnableWebMvc @ComponentScan(basePackages = "my.package") public class Configurations extends WebMvcConfigurerAdapter { @Override public void configureViewResolvers(ViewResolverRegistry registry) { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setPrefix("/client/"); viewResolver.setSuffix(".html"); registry.viewResolver(viewResolver); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //resources locations registry.addResourceHandler("client/**").addResourceLocations("/client/**"); } } pero cuando en mi archivo index.html trato de incluir cualquiera de los archivos .js o .css , obtuve 404 del servidor para cada recurso incluido en el punto (2) ... como esperaba ... tenía que hacer esto (3) :
registry.addResourceHandler("client/**").addResourceLocations("/client/", "/client/login/", "/client/stuff/", //ecc... ecc...);¡declarar cada ruta individual a cada recurso de mi frontend verithing funciona perfectamente! De verdad, ¡sé que eso es feo!
¿Se puede hacer algo como (1) sin declarar CADA RUTA DE RECURSOS?
Prueba esto :
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry .addResourceHandler("/client/**") .addResourceLocations("/client/"); } <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <link rel="stylesheet" href="<c:url value="/client/login/login.css" />"> <script src="<c:url value="/client/login/login.js" />"></script>