spring boot 默认的资源路径
在默认情况下,spring Boot 从classpath下 的 /static 的文件夹或从ServletContext根目录提供静态内容。因为spring Boot 集成了Thymeleaf,所有在动态资源文件 /templates 这个目录加载资源文件是,需要使用Thymeleaf 的语法。th:src和@{} 是Thymeleaf的语法,意思是引入外部资源。
示例
在一个名为Ueditor.html的页面,里面引用了static目录下的静态资源,其src如图中3的示意。 其controller层的实现就是普通springMvc的实现方法。代码如下:
@Controller
public class HelloController {
@RequestMapping("/index")
public String index(Model model){
model.addAttribute("name","Ryan");
return "ueditor/ueditor";
}
}
自定义资源的放置目录
@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/");
registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/");
super.addResourceHandlers(registry);
}
}
通过继承WebMvcConfigurerAdapter ,注册一个资源处理器就OK了。
WebMvcConfigurerAdapter这个类可以说是SpringMVC的java的config,它可以代替我们之前在xml中进行的一系列配置。关于WebMvcConfigurerAdapter更多的介绍请看spring-framework-reference 543页22.16 Configuring Spring MVC这章的内容。