我正在使用ETag緩存的Rails(4.1.1)行爲與stale?
方法;但它不考慮請求格式。例如:如果/stations.json
已被用戶加載,然後他們點擊指向/stations
的鏈接,則它們將獲得緩存的JSON響應而不是html。Rails緩存給出了錯誤的響應格式
我做錯了,還是這是一個Rails的bug?
# GET /stations
# GET /stations.json
def index
@title = "Stations"
@last_updated = Station.order("updated_at asc").last
if stale?(@last_updated, last_modified: @last_updated.try(:updated_at))
@stations = all_with_latest_observation
respond_to do |format|
format.html
format.json { render json: @stations }
end
end
end
你在哪裏設置你的緩存?顯示你的代碼。 – dddd1919 2014-09-16 02:06:25
@ dddd1919:['stale?'](http://apidock.com/rails/ActionController/Base/stale%3F) – max 2014-09-16 18:05:36
對不起,我不熟悉rails4的功能。看起來像'陳舊'會判斷你的參數來決定是否返回'304',當請求json數據時你會嘗試跳過陳舊嗎? – dddd1919 2014-09-17 01:35:40