Javascript 使用ResourceHandlerRegistry提供静态资源的不同方式
我必须用Java后端启动Angular 1应用程序。我想使用与前几个月相同的文件夹结构,使用Angular 1作为前端,Storngloop作为后端 我的前端web应用程序由以下文件夹结构组成: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、
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)
的操作,而无需声明每个资源路径?尝试以下操作:
<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>