springboot 整合vue遇到的坑
@GetMapping({ "{appId:^(?:(?!assets).)*$}/{device}" })
public String index1() {
return "index";
}
由于/{appId}/{device}/{phase} 加载静态文件/assets/css/app.af723687.css 与这个路由匹配所以 返回的都是index.html
所以用{appId:^(???!assets).)*$}/{device}/{phase}将assets的路由过滤掉
还需配置这个
@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// registry.addResourceHandler("/assets/").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+ “//assets/”);
registry.addResourceHandler("/assets/").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+ “/templates/assets/”).setCacheControl(CacheControl.noCache());
registry.addResourceHandler("/img/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+ “/templates/img/”);
super.addResourceHandlers(registry);
}
}
.setCacheControl(CacheControl.noCache());是必须加的