Javascript 使用ResourceHandlerRegistry提供静态资源的不同方式

Javascript 使用ResourceHandlerRegistry提供静态资源的不同方式,javascript,java,html,spring,spring-mvc,Javascript,Java,Html,Spring,Spring Mvc,我必须用Java后端启动Angular 1应用程序。我想使用与前几个月相同的文件夹结构,使用Angular 1作为前端,Storngloop作为后端 我的前端web应用程序由以下文件夹结构组成: src | main | webapp | client 在app文件夹中,我有一个由其他.css、.js、.html文件中的子文件夹组成的整个应用程序(在每个文件夹中都是我的应用程序的一部分。例如:login form文件夹,其中包含.css、

我必须用Java后端启动Angular 1应用程序。我想使用与前几个月相同的文件夹结构,使用Angular 1作为前端,Storngloop作为后端

我的前端web应用程序由以下文件夹结构组成:

src
  |
  main
    |
    webapp
        |
        client
在app文件夹中,我有一个由其他.css、.js、.html文件中的子文件夹组成的整个应用程序(在每个文件夹中都是我的应用程序的一部分。例如:login form文件夹,其中包含
.css
.html
.js
文件等等…)

比如:

client
      |
      login
          |
          login.html
          |
          login.css
          |
          login.js
      stuff
          |
          stuff.html
          |
          stuff.css
          |
          stuff.js
在index.html中,我将执行
(2)

但是当我在
index.html
文件中尝试包含
.js
.css
中的任何一个文件时,我从服务器上为点
(2)
中包含的每个资源获取了404个文件。。。正如我所料。。。我必须这样做
(3)

声明我的前端验证的每一个资源的每一条路径都非常有效!真的,我知道那很难看

可以执行类似于
(1)
的操作,而无需声明每个资源路径?

尝试以下操作:

  • 配置:
  • jsp:
  • 
    
    <link rel="stylesheet" href="client/login/login.css">
    ...
    <script src="client/login/login.js"></script>
    
    @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/**");
        }
    
    }
    
    registry.addResourceHandler("client/**").addResourceLocations("/client/", "/client/login/", "/client/stuff/", //ecc... ecc...);
    
    @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>