Web开发
新建项目 springboot-02-config
我们在开发项目之前要先测试一下是否可以运行(要养成习惯)
一、静态资源处理
静态资源映射规则:
SpringBoot中,SpringMVC的web配置都在 WebMvcAutoConfiguration 这个配置类 ,这里面有很多配置方法,其中:addResourceHandlers 添加资源处理
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
// 已禁用默认资源处理
logger.debug("Default resource handling disabled");
return;
}
// webjars 配置
addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
// 静态资源配置
addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
registration.addResourceLocations(this.resourceProperties.getStaticLocations());
if (this.servletContext != null) {
ServletContextResource resource = new ServletContextResource(this.servletContext, SERVLET_LOCATION);
registration.addResourceLocations(resource);
}
});
}
1.webjars(了解)
要使用jQuery,只需引入jQuery对应版本的pom依赖:
https://www.webjars.org
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.4.1</version>
</dependency>
我们这里访问: http://localhost:8080/webjars/jquery/3.4.1/jquery.js
2. /**
静态资源映射就相当于当前目录下的所有东西
/** 都会被下面四个目录映射(即以下四个目录存放的静态资源可以被我们识别)
"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"
我们可以在resources根目录下新建对应的文件夹 存放静态文件
测试:
这时我们访问http://localhost:8080/1.js 他就会去这些文件夹中寻找对应的静态资源文件
注:优先级顺序为:resources(一般放上传的文件)>static(一般放静态资源如图片)>public(一般放公共资源如公共页面的js)
拓展:
自定义静态资源路径:
可以通过配置文件(application.properties中)来指定一下,哪些文件夹是需要我们放静态资源文件的
且一旦自定义了静态文件夹的路径,原来的自动配置就都会失效
spring.resources.static-locations=classpath:/xxx/,classpath:/xxx/
二、首页定制
依旧是WebMvcAutoConfiguration
例如:
访问 http://localhost:8080/ ,就会找静态资源文件夹下的 index.html
新建一个 index.html 并放在上面3个目录中任意一个 然后访问测试 http://localhost:8080/ 就可
可我们在开发中常用的方法是:
通过controller跳到首页去(需要模板引擎themeleaf支持)
把index.html放到templates(在templates目录下的所有页面只能通过controller跳转 相当于之前的WEB-INF目录)
见Springboot入门笔记6
彩蛋
更改网站图标
先给springboot降版本(2.1.7RELEASE即可)
“Spring Boot项目的issues中提出,如果提供默认的Favicon可能会导致网站信息泄露。如果用户不进行自定义的Favicon的设置,而Spring Boot项目会提供默认的上图图标,那么势必会导致泄露网站的开发框架。因此,在Spring Boot2.2.x中,将默认的favicon.ico移除”
最后 清理浏览器缓存(cookies) 重启项目就好了
参考资料:狂神说