使用ResourceHandlerRegistry

时间:2017-03-12 21:19:23

标签: javascript java html spring spring-mvc

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

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

src
  |
  main
    |
    webapp
        |
        client

内部应用程序文件夹ich是由子文件夹组成的整个应用程序,其中包含其他.css,.js,.html文件(在我的应用程序的每个文件夹中。通过实例:登录表单文件夹,其{内部有{1}},.css.html个文件,等等......)。

类似的东西:

.js

在index.html中我会client | login | login.html | login.css | login.js stuff | stuff.html | stuff.css | stuff.js

(2)

所以我想按照以下<link rel="stylesheet" href="client/login/login.css"> ... <script src="client/login/login.js"></script> 配置我的ResourceHandlerRegistry

(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/**"); } } 文件中,我尝试在服务器中为index.html中包含的每个资源添加404 .js.css个文件。正如我所料......我必须这样做(2)

(3)

声明我前端的每个资源的每一条路径都是完美的!真的,我知道这很难看!

可以在不声明每条资源路径的情况下完成类似registry.addResourceHandler("client/**").addResourceLocations("/client/", "/client/login/", "/client/stuff/", //ecc... ecc...); 的操作吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

  1. 配置:
  2. @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
            .addResourceHandler("/client/**")
            .addResourceLocations("/client/");
    }
    
    1. Jsps:
    2. <%@ 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>