为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

墨色风雨 2019-02-18 15:12:46

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


查看完整描述

2 回答

?
慕哥9229398

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
//@EnableAutoConfiguration
public class HelloController {
@RequestMapping("/")
@ResponseBody
public String hello() {
return "hello world <img src=\"image/demo.jpg\">";
}
}

2. 添加自定义:
注意是添加,不是替换,添加不影响原来的默认约定。非要自定义,那就配置类继承WebMvcConfigurerAdapter
@Configuration
public class MyWebAppConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/myResource/**").addResourceLocations("classpath:/myResource/");
super.addResourceHandlers(registry);
}
}



查看完整回答
反对 回复 2019-02-24
?
函数式编程

在application.properties配置文件中加入: web.upload-path=D:/temp/study13/ spring.mvc.static-path-pattern=/** spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\ classpath:/static/,classpath:

查看完整回答
反对 回复 2019-02-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信