【发布时间】:2017-08-02 20:36:37
【问题描述】:
我必须启动一个带有 Java 后端的 Angular 1 应用程序。我想使用与前几个月相同的文件夹结构,Angular 1 作为前端,Storngloop 作为后端。
我的前端 Web 应用程序是由这个文件夹结构组成的:
src
|
main
|
webapp
|
client
在 app 文件夹中,整个应用程序由其他 .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 文件我从服务器获得404 点(2) 中包含的每个资源...正如我所料...我必须这样做(3):
registry.addResourceHandler("client/**").addResourceLocations("/client/", "/client/login/", "/client/stuff/", //ecc... ecc...);
声明我的前端验证的每个资源的每条路径都非常有效!真的,我知道这很丑!
可以在不声明每个资源路径的情况下完成类似(1) 的操作吗?
【问题讨论】:
标签: javascript java html spring spring-mvc