猿问

请问一下Spring Boot中静态资源等应该放在什么位置?

Spring Boot中静态资源等应该放在什么位置


慕标5832272
浏览 1052回答 3
3回答

白猪掌柜的

1. 默认位置:Spring Boot能大大简化WEB应用开发的原因, 最重要的就是遵循“约定优于配置”这一基本原则。Spring Boot的关于静态资源的默认配置已经完全满足绝大部分WEB应用的需求。没必要去弄手续繁杂的自定义,用Spring Boot的约定就好了。在Maven 工程目录下,所有静态资源都放在src/main/resource目录下,结构如下:src/main/resource|__________static|_________js|_________images|_________css.....例如,imges目录下的demo.jpg 在HTML/JSP中访问是的路径就是<img src="/images/demo.jpg">, 因为Spring Boot的缺省工作目录就是src/main/java, 当访问资源时,就是src/main/resources, 而/static/**被SPRING BOOT被映射到了classpath:/static下。所以也可以不带起始的“/”,直接写成<img src="images/demo.jpg">。以下代码示例为Hello World 加了个图片显示, 这里的demo.jpg在maven工程的位置存放就是src/main/resource/static/images/demo.jpg,可用<img src="image/demo.jpg">访问@Controller//@EnableAutoConfigurationpublic class HelloController {@RequestMapping("/")@ResponseBodypublic String hello() {return "hello world <img src=\"image/demo.jpg\">";}}2. 添加自定义:注意是添加,不是替换,添加不影响原来的默认约定。非要自定义,那就配置类继承WebMvcConfigurerAdapter@Configurationpublic class MyWebAppConfig extends WebMvcConfigurerAdapter {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/myResource/**").addResourceLocations("classpath:/myResource/");super.addResourceHandlers(registry);}}

慕哥9229398

spring&nbsp;boot&nbsp;基本依赖1.基础核心依赖<parent>&nbsp;&nbsp;&nbsp;&nbsp;<groupId>org.springframework.boot</groupId>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<artifactId>spring-boot-starter-parent</artifactId>&nbsp;&nbsp;&nbsp;&nbsp;<version>1.5.1.RELEASE</version></parent>2.web应用依赖<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>3.使用freemark依赖(不和web应用依赖共存)<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency></dependencies>扩充一下:
随时随地看视频慕课网APP
我要回答