开始嘲笑这个。 documentation说:
默认情况下,Spring Boot将从类路径中的/ static(或/ public或/ resources或/ META-INF / resources)目录或ServletContext的根目录中提供静态内容。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@SpringBootApplication
@EnableWebMvc
public class Main {
public static void main(final String[] args) {
SpringApplication.run(Main.class, args);
}
}
创建一个目录/src/main/resources/public
,在那里放置静态资源。当我运行应用程序时,我只获得404.当我删除 @EnableWebMvc
资源按预期提供时。
/**
* @see org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter#addResourceHandlers(org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry)
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/public/**").addResourceLocations("/public/");
}
在application.properties
添加:
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
所以我的问题是:当我想使用@EnableWebMvc
注释时,我需要配置什么来提供静态资源?
答案 0 :(得分:1)
您应该配置下面的ViewResolver
以及您的ResourceHandler。查看this
@Bean
public InternalResourceViewResolver defaultViewResolver() {
return new InternalResourceViewResolver();
}
答案 1 :(得分:1)
在你提到的documentation中,它说:
如果你想完全控制Spring MVC,你可以添加你的 拥有
@Configuration
注释的@EnableWebMvc
。
您应该尝试在您的配置中使用@EnableWebMvc
而不是Spring启动应用程序。
这个documentation就是一个例子。
启用MVC Java配置或MVC XML命名空间
要启用MVC Java配置,请将注释
@EnableWebMvc
添加到其中一个 你的@Configuration
课程:@Configuration @EnableWebMvc public class WebConfig { }
同样在这些例子中:
我希望这会对你有所帮助。