2017-03-12 109 views
1

我必須使用Java後端啓動Angular 1應用程序。我以前使用與之前幾個月的前一個文件夾結構相同的文件夾結構,將Angular 1作爲前端,將Storngloop作爲後端。通過ResourceHandlerRegistry提供靜態資源的不同方式

我的前端Web應用程序是通過該文件夾結構組成:

src 
    | 
    main 
    | 
    webapp 
     | 
     client 

裏面app文件夾ICH HABE由子組成整個應用程序,它裏面其他的.css,.js文件,.html文件(在每個文件夾療法的例如:登錄表單文件夾,其中有.css.html.js文件等等......)。

喜歡的東西:

client 
     | 
     login 
      | 
      login.html 
      | 
      login.css 
      | 
      login.js 
     stuff 
      | 
      stuff.html 
      | 
      stuff.css 
      | 
      stuff.js 

,並在index.html的我會做(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文件我嘗試包括任何.js.css文件,我從包括在點(2)每個資源的服務器有404 ......如我所料...我不得不這樣做(3)

registry.addResourceHandler("client/**").addResourceLocations("/client/", "/client/login/", "/client/stuff/", //ecc... ecc...); 

宣稱每一個通往我前臺每個資源的完整工作都非常完美!真的,我知道這很醜陋!

可以做一些像(1)而不聲明每個單一資源路徑?

回答

1

嘗試這種情況:

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

    我欠你的。非常感謝! – grimi