[英]Forcing the browser to reload css/js only if they have changed
關於我的問題,有很多關於SO的問題和答案[我希望瀏覽器永遠緩存js / css。 在新發行版中,如果某些js / css文件已更新,則瀏覽器應重新加載並緩存它們。]
這個解決方案對我來說似乎最合適: 什么是強制瀏覽器重新加載緩存的CSS / JS文件的優雅方法?
但是,只有一件事我無法弄清楚。 該解決方案利用了last_modified_time。 但是,我不允許使用它。 我需要使用其他機制。
有什么選擇? 是否有可能在構建過程中預先計算版本並通過構建腳本在jsps中更新(替換)它們(在部署之前,這樣就不會在運行時計算版本號)? 為此目的有任何現有工具嗎? 我使用Java / Jsp。
我們總是用
file.css?[deploytimestamp]
這樣,將為客戶端的每個部署緩存CSS文件。 我們的小型javascript也是如此。 這是您的選擇嗎?
這可能不是最好的方法,但這就是我現在正在做的事情:
部署后為每個css文件生成一個md5-hash。 使用此哈希代替CSS網址中的時間戳。
file.css?[hash of file.css contents]
部署后一次計算哈希並存儲它們以獲得一些性能可能是明智的。 您可以將它們存儲在數據庫中,甚至可以存儲在網站代碼中包含的單獨文件中的PHP數組中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.