欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

SpringBootWeb如何實現(xiàn)靜態(tài)文件緩存處理

這篇文章主要為大家展示了“Spring Boot Web如何實現(xiàn)靜態(tài)文件緩存處理”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Spring Boot Web如何實現(xiàn)靜態(tài)文件緩存處理”這篇文章吧。

專注于為中小企業(yè)提供網站設計、成都做網站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)北辰免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。

采用Spring Boot + Freemarker開發(fā)Web項目時,由于一些靜態(tài)文件比較大,如果是在PC上訪問影響不大,當在手機上訪問時,特別是用流量訪問時速度會慢很多,而且很耗流量。

通過對請求進行抓包,可以發(fā)現(xiàn)每次進入一個頁面都需要加載靜態(tài)文件,如果不差錢的公司可以將靜態(tài)文件放在cdn上來加快訪問速度,或者用Nginx來做靜態(tài)文件的緩存。

今天給大家介紹一種其他的緩存優(yōu)化方式,通過Spring的緩存機制來緩存靜態(tài)文件,在Spring Boot中配置靜態(tài)文件緩存只需要在配置文件中加入下面的配置即可:

# 資源緩存時間,單位秒
spring.resources.cache-period=604800 
# 開啟gzip壓縮
spring.resources.chain.gzipped=true 
# 啟用緩存
spring.resources.chain.cache=false

配置可以參考文檔: https://docs.spring.io/spring-boot/docs/1.5.4.RELEASE/reference/htmlsingle/ 的SPRING RESOURCES HANDLING部分

加上緩存配置后我們訪問頁面后,被加載過的靜態(tài)資源就會緩存起來,第二次訪問時就不會再去重新請求下載了,通過抓包可以看出確實被緩存了。

Spring Boot Web如何實現(xiàn)靜態(tài)文件緩存處理

在Size那列有from memory cache,資源被緩存在瀏覽器的內存中了,也有的文件會緩存在磁盤中,那就是from disk cache。

優(yōu)化目的是達到了,但是有一個小問題沒有解決,就是如果我的資源文件變了,比如css文件有修改,當我服務端發(fā)布之后,用戶這邊還是會存在緩存。

最好的效果時當文件有改變時或者說當服務端的程序重啟之后,用戶的請求需要下載服務端的最新資源,沒有重啟的時候就用緩存的內容,這樣就能保證更改后用戶能夠馬上看到最新的內容。

我們可以用版本號來解決這個問題,就是在靜態(tài)資源后面加上一個版本號,當資源發(fā)生變化時將版本號也改變,這樣就不會有問題了。

使用方式如下:

<link rel="stylesheet" href="css/main-app.css?version=${version!}" rel="external nofollow" />

用法很簡單,關鍵是version這個值從哪來呢?

我們可以在啟動前通過代碼設置這個值:

System.setProperty("version", version);

這個值可以通過main方法的args傳進來,在啟動項目的腳本中動態(tài)傳到程序中,啟動腳本可以獲取程序jar的MD5值作為版本號,這樣當服務端的程序重啟之后,版本號就變了,緩存就失效了。

然后在過濾器中獲取這個值設置到request中就可以在每個頁面中使用了

String version = System.getProperty("version");
req.setAttribute("version", version == null ? "1.0.0" : version);

除了這種參數(shù)傳遞的方式,大家還可以通過自定義打包的插件,在打包的時候將version替換成具體的內容也可以。

上面講的方式是通過自己去生成version來控制文件的變更,其實Spring Mvc中已經提供了靜態(tài)文件的版本管理功能,有二種方式,一種是通過資源的MD5來生成版本號,文件內容變了,MD5肯定也變了。另一種是在資源的前面加上版本號的路徑。

MD5

在屬性文件中增加下面的配置:

spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

增加Url的處理:

@ControllerAdvice
public class ControllerConfig {

  @Autowired
  ResourceUrlProvider resourceUrlProvider;

  @ModelAttribute("urls")
  public ResourceUrlProvider urls() {
    return this.resourceUrlProvider;
  }

}

頁面中使用方式如下:

復制代碼 代碼如下:


<link rel="stylesheet" type="text/css" href="${urls.getForLookupPath('/css/main-app.css')}" rel="external nofollow" >

編譯之后就會變成下面的內容:

復制代碼 代碼如下:


<link rel="stylesheet" type="text/css" href="/css/main-app-4v371326bb93ce4b611853a309b69b33.css" rel="external nofollow" >

版本號

在屬性文件中增加下面的配置:

spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.paths=/js/**,/v1.0.0/**
spring.resources.chain.strategy.fixed.version=v1.0.0

頁面中使用方式如下:

<script type="text/javascript" src="${urls.getForLookupPath('/js/main.js')}"></script>

編譯之后就會變成下面的內容:

<script type="text/javascript" src="/v1.0.0/js/main.js"></script>

無論使用哪種方式,能實現(xiàn)效果,并且工作量不會太大即可,優(yōu)化無止境,干就完了。

以上是“Spring Boot Web如何實現(xiàn)靜態(tài)文件緩存處理”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章標題:SpringBootWeb如何實現(xiàn)靜態(tài)文件緩存處理
分享網址:http://chinadenli.net/article6/jsejig.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、服務器托管、響應式網站、域名注冊App設計、企業(yè)建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網站建設
国产99久久精品果冻传媒| 久久这里只精品免费福利| 色一情一伦一区二区三| 日韩18一区二区三区| 亚洲a级一区二区不卡| 中文字幕在线五月婷婷| 久久精品国产99精品亚洲| 精品al亚洲麻豆一区| 男人把女人操得嗷嗷叫| 极品少妇嫩草视频在线观看| 中文字幕人妻一区二区免费| 欧美日韩精品综合一区| 欧美黑人黄色一区二区| 国产精品久久精品毛片| 欧洲日本亚洲一区二区| 婷婷基地五月激情五月| 97精品人妻一区二区三区麻豆| 特黄大片性高水多欧美一级| 精品人妻一区二区三区四区久久| 亚洲美女国产精品久久| 综合久综合久综合久久| 国产又粗又爽又猛又黄的| 日韩av欧美中文字幕| 色婷婷国产精品视频一区二区保健 | 日本深夜福利视频在线| 国产乱人伦精品一区二区三区四区| 精品人妻一区二区三区在线看| 高清一区二区三区不卡免费| 色婷婷亚洲精品综合网| 亚洲国产成人一区二区在线观看| 亚洲国产av精品一区二区| 婷婷伊人综合中文字幕| 精产国品一二三区麻豆| 午夜视频免费观看成人| 国产麻豆精品福利在线| 国产日韩熟女中文字幕| 五月综合婷婷在线伊人| 欧美国产日产综合精品| 国产一区二区在线免费| 日韩精品综合免费视频| 麻豆精品在线一区二区三区|