2011-07-08 54 views
2

我在我的Rails應用程序的.swf,設在這裏:如何處理手動.swf緩存?

/public/bin/editor/Editor.swf

它正常工作,有一個缺陷,它緩存時候,所以當我們發佈我們通常需要通知客戶在遇到問題時清除緩存的新版本。我的問題是,當我發佈新版本時,如何強制.swf破壞緩存?喜歡的東西:

/public/bin/editor/Editor.swf?timestamp=124158512132

我試過以上,但它似乎沒有工作。任何想法都會很棒!

+0

你是如何加載您的SWF? –

+0

使用JavaScript(規格如果是SWFObject) – andrewpthorp

+0

我的意思是,顯示加載它的代碼。 –

回答

1

如果您正在使用swfobject.js,並希望該項目不會被緩存,你需要添加此,到SWF的描述: '?index.swf '

swfobject.embedSWF(+新日期()的getTime() ...

當然

你可以改變的getTime()到你喜歡的格式。

+0

這會強制緩存每次都會中斷,我正在尋找的是強制/緩存緩存的細粒度方式。 – andrewpthorp

+0

正如我告訴你,你可以把你喜歡的格式。輸入沒有毫秒,2011-07-14放在那裏,所以它會改變每一天,或在2011-07年,所以它會改變每個月。或者另一個時間戳,只有在一段時間後纔會改變。 'new Date()。getTime()/您自己的MILISECONDS' –

+2

或者如果您動態地提供頁面,則可以使用作爲構建/發佈過程的一部分收集的修訂號。或者,如果你沒有動態地爲它提供服務,那麼這個過程可以把你的html頁面的版本號燒掉。 –

0

考慮使用版本控制命名法編輯器。例如Editor_v1.01.005.swf

這裏有一個很好的格式

app_major_minor_patch.swf

有許多這樣做的好處,它也將解決您的緩存的問題,以及出巧合。 :)

+0

只有當您擁有一個動態HTML,並根據swf名稱更改來更改swf調用名稱時,此解決方案纔有用。否則你將需要更改HTML。 –

+0

是的,但可以肯定是部署過程的一部分。讓開發人員和任何第三方離開實施版本號是個謎,這不是一件好事。 :) – Nate

+0

這看起來像很多手動保養。例如,我有加載模塊的Editor.swf。它是否可以緩存在模塊級別? – andrewpthorp