2009-11-13 36 views
1

我們對當前正在rails 2.3.4中開發的站點使用gravtars,並且我發現即使gravtar發生更改,導軌側也傾向於緩存映像側。我知道JavaScript可以防止在使用javacript_include_tag :cache => false方法時緩存,但是,有什麼方法可以在使用image_tag幫助器時防止緩存?以每個標籤爲基礎防止在導軌上進行圖像緩存

我已經閱讀了一下,看起來它用來在帶有一些參數的URL(即src="image.png?123123")之後追加時間戳信息,但它似乎不再做。

任何想法,或者我應該停止使用那些該死的幫助者作爲一個柺杖,並且一次在我的rails開發生活中寫下一些實際的代碼?

+0

什麼是'image_tag'生成的html? 'image_tag'應該會生成緩存清除網址。 – 2009-11-13 01:47:30

+0

你是在談論gravatar.com還是別的什麼? – danivovich 2009-11-13 02:18:54

+0

@danivovich我的確在談論gravatar.com @Andy,我的問題是,image_tag不會生成緩存破壞url,@avaynshtok下面提到它,因爲它只對本地資源做它。 – 2009-11-15 23:20:10

回答

2

一種選擇,我能想到做這將是寫一個小幫手,將追加一個「?YYYYMMDDHH」到的Gravatar網址的結尾。您可以生成URL以包含年,月,日和小時。通過這種方式,瀏覽器緩存最多隻能陳述一小時。

這會增加用戶感知的加載時間,因爲圖像會被瀏覽器緩存得較慢。您可以調整多種方式:YYYYMMDD,YYYYMMDDHH等。您必須衡量具有最新的Gravatar圖像與頁面渲染速度的重要性。

+0

感謝巴里,這是我將不得不採取的方法,如果我確實決定採取最新的方法爲用戶。乾杯! – 2009-11-15 23:22:04

0

您是否在談論這個網站的http://en.gravatar.com/

Rails僅將緩存清除時間戳附加到本地資源。如果圖像是從另一個網站請求的,它不會修改src屬性。如果您需要欺騙瀏覽器不緩存遠程映像,則必須手動設置src。

-Anton