我有javascript文件麻煩的最新版瀏覽器被緩存,即使我用緩存只有JavaScript文件
FileETag MTime Size
htaccess的檢查修改的時間和大小,看它是否是最新版本。我目前包括JavaScript文件,像這樣:
<script src="/code.js" type="text/javascript"></script>
我試圖SVN版本信息添加到該文件調用,像這樣:
<script src="/code.js?svn=123" type="text/javascript"></script>
,但我無法找到一個防彈的方法來做到這一點,因爲我無法通過文件名(任何建議)獲得修訂,即使我添加了修訂版,HTML也正在被Smarty預編譯和緩存。
所以我想過使用模板沒有緩存塊,但我還沒有嘗試過這種方法。由於文件只編譯一次,會有什麼不同嗎?
所以基本上我只是收集如何強制瀏覽器只緩存最新版本的文件的想法。理想的解決方案是通過htaccess實際上工作,不像FileETag,因爲使用它,你總是必須按CTRL + F5才能獲得最新版本。
我沒有想到散列文件內容的唯一標識符,好想法! – donkapone
雖然?方法迫使某些瀏覽器(至少Firefox)總是向服務器發送請求,而不管截止日期如何。通常會有一個短暫的NOT MODIFIED迴應,但仍然存在。另外,使用上次修改的日期作爲緩存攔截器已足夠,並且比MD5更容易獲取。 –
好的想法以及修改的日期ID,但我經常部署,部署更改所有的文件,所以顛覆號碼添加或內容散列仍然是我的方式,否則我會毀了每個用戶的'每次部署時緩存。現在的問題是,如何通過htaccess或其他方式將哈希添加到請求中,而不是通過代碼?這是否可能? – donkapone