一开始遇到的问题,当直接访问html文件,如http://localhost/xxx.html时,页面能访问,但是css,js文件却不能加载。浏览器报错404。后台打印
o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [/css/aaa.css] in DispatcherServlet...
o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [/js/bbb.js] in DispatcherServlet...
试过在WebMvcConfigurer.java加@EnableMvc 注解、加上
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
等都不行。最后 G歌到一个方法,不用加@EnableMvc注解,只在WebMvcConfigurer.java里加上
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!registry.hasMappingForPattern("/webjars/**")) {
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
}
if (!registry.hasMappingForPattern("/**")) {
registry.addResourceHandler("/**").addResourceLocations(
CLASSPATH_RESOURCE_LOCATIONS);
}
}
参考网址:
https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot