簡體   English   中英

Spring MVC + Thymeleaf:更新靜態資源

[英]Spring MVC + Thymeleaf: Updates to static resources

我的SpringMVC / Thymeleaf應用程序遇到問題,當我發布包含對靜態資源(圖像,CSS文件,JavaScript庫)所做更改的更新時,用戶會遇到錯誤。 發生問題是因為他們的瀏覽器緩存中具有舊版本的資源,因此如果強制刷新,問題就會消失,但是大多數用戶不知道這樣做。

過去,我已經在其他框架中解決了此問題,方法是讓構建將構建號注入到Spring bean中,並自定義URL構建機制以將構建號包括在URL中。 將此與在這些資源上將Cache-Control響應標頭設置為不遠的日期相結合,可以確保只要用戶在其瀏覽器緩存中擁有該資源,就不會重新獲取該資源,除非我發布新的版本。

Spring MVC / Thymeleaf是否具有解決此問題的內置方法? 如果沒有,如何覆蓋Thymeleaf中的URL寫入機制,以便添加上述行為?

一種解決方案是編寫您自己的方言並定義一個自己的助手sr。 然后,您可以編寫@{#sr(yoururl)} 您可以找到有關編寫自己的方言的信息

“對於創建自己的實用程序對象,可以通過創建實現IExpressionEnhancingDialect接口的簡單方言來完成。這將使Thymeleaf將您對getAdditionalExpressionObjects()方法的實現返回的所有對象添加到處理上下文中。”

在方言中,您可以定義buildnr硬編碼。

另一種方法是始終將buildnr添加到模型,然后可以編寫@{yoururl(buildnr=${buildnr})}

或者最好將其放入消息源中,並可以使用@{yoururl(buildnr=#{buildnr})}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM