springboot设置静态资源缓存⼀年
由于本⼈所在项⽬组,所⽤的项⽬是前后端分离的,前端是React 的SPA,每次打包都会新版本的静态⽂件。
然⽽,在有些时候,这些静态资源是不变的,故可以将资源缓存⾄⽤户本地,提升性能。
写法如下,需要继承WebMvcConfigurerAdapter类,并重写addResourceHandlers⽅法。就可以告诉浏览器强制缓存package cn.figuration;
import t.annotation.Configuration;
import org.springframework.http.CacheControl;
import org.springframework.fig.annotation.ResourceHandlerRegistry;
import org.springframework.fig.annotation.WebMvcConfigurerAdapter;
import urrent.TimeUnit;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
/**
* <p>设置静态资源缓存时间:1年</p>
* <p>注意:不可缓存⼊⼝⽂件</p>
* @param registry 资源注册
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/*.js","/*.css")
.addResourceLocations("classpath:/static/")
//.setCacheControl(CacheControl.maxAge(365,TimeUnit.DAYS).cachePublic())
.
setCachePeriod(3153600);
}
spring framework版本}
据某位⼤佬说,⼤家可以强制设置静态资源缓存⼀年,但⼀定不要缓存⼊⼝⽂件,⼤家可以试试改造⾃⼰的项⽬。如果设置成功,会有下⾯的效果,from disk cache,⼀般情况是from memory cache
⼤家还可以注意下cache-control这个值,当然这个值是以秒为单位的。
有兴趣的同学可以研究研究cache-control,补充补充web基础知识
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论