我必须使用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...);
的操作吗?
答案 0 :(得分:1)
试试这个:
@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>