静态资源映射
Spring Boot会自动映射
/static、/public、/resources等目录下的静态资源,请求的匹配顺序是优先匹配控制层(Controller)的映射,再匹配静态资源
默认开放目录:
src/main/resources/static/
src/main/resources/public/
src/main/resources/resources/
src/main/resources/META-INF/resources/
src/main/webapp // ServletContext 根路径
classpath:path:代表src/main/resources:path
file:path:file:协议表示资源位于文件系统中,path可以是相对或者绝对路径
Vue映射
使用Vue Router的history模式,需配置所有非静态资源请求重定向到
index.html
java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/**")
.addResourceLocations("classpath:/dist/");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 所有未匹配的路径重定向到index.html
registry.addViewController("/{path:^(?!.*\\..*$).*}")
.setViewName("forward:/index.html");
}
}配置子目录
java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/yxx-yi/**")
.addResourceLocations("classpath:/dist/");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 处理以 /yxx-yi/ 开头的多级路径(且不包含文件扩展名)
registry.addViewController("/yxx-yi/{path:^(?!.*\\..*$).*}")
.setViewName("forward:/yxx-yi/index.html");
}
}访问:
/yxx-yi/index即可访问到
