使用SpringBoot怎么实现加载静态资源
更新时间:2023-11-28简介
静态资源是通过Web页面提供的资源,如HTML、CSS、JS和图片等。SpringBoot可以通过一个简单的配置来加载这些静态资源,而不需要进行繁琐的代码处理。
加载基础静态资源
SpringBoot默认会在classpath下的“/static”、“/public”、“/resources”、“/META-INF/resources”文件夹中查找静态资源。这里我们使用“/static”文件夹来存储我们的静态资源。在“static”文件夹下创建“index.html”文件作为我们的默认首页,如下:
src ├─ main ├─ resources └─ static └─ index.html
在SpringBoot的配置文件中,即“application.properties”文件中添加以下配置:
spring.resources.static-locations=classpath:/static/
这样,在浏览器中访问“http://localhost:8080”即可访问到“index.html”文件了。
加载自定义静态资源
除了默认的静态资源文件夹,我们还可以通过以下配置来加载自定义的静态资源文件夹:
@Configuration public class MvcConfigurer implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/myres/**").addResourceLocations("classpath:/myres/"); } }
上面的配置会将URL“/myres/**”映射到classpath下的“/myres/”文件夹中,这样我们就可以访问到文件夹中的静态资源了。
配置静态资源缓存
静态资源的缓存可以有效地提高Web页面的访问速度,减少页面加载时间。SpringBoot可以利用HTTP缓存来提高静态资源的缓存效果。以下是一个简单的配置示例:
@Configuration public class WebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/") .setCacheControl(CacheControl.maxAge(1, TimeUnit.HOURS).cachePublic()); } }
上面的代码设置了静态资源缓存的时间为1小时。