[英]expires_in max-age cache control doesn't work
我無法使最大使用期限的緩存控件正常工作,我使用了expires_in導致出現“ Cache-Control:max-age = 86400,public,必須重新驗證”標頭。
但是,瀏覽器仍然會將請求發送到服務器,至少將其定義為“ 304未經修改”,這意味着ETag / If-None-Match標頭可以正常工作。
我已經在本地主機和Heroku上使用chrome 45和Safari上的webrick對其進行了測試。
不,我的開發工具未打開,並且未選中“禁用緩存”。
我還嘗試刪除了expires_in方法調用中的“,must_revalidate:true”。
我想念什么?
這是來自chrome的網絡輸出: 常規:遠程地址:127.0.0.1:3000請求URL: http ://localtest.me:3000/ api/books請求方法:GET狀態碼:304未修改
響應標題: Access-Control-Allow-Origin:* Access-Control-Request-Method:* Cache-Control:max-age = 86400,公共,必須重新驗證連接:Keep-Alive日期:星期二,2015年9月8日13: 28:01 GMT Etag:W /“ 1f1b2d0b822830bc74e7c47a116205be”服務器:WEBrick / 1.3.1(Ruby / 2.2.1 / 2015-02-26)X-Content-Type-Options:nosniff X-Frame-Options:SAMEORIGIN X-Request -Id:c70d4715-dcff-4558-85af-9d21556d406a X運行時:0.553353 X-Xss保護:1; 模式=塊
請求標頭: Accept:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp, / ; q = 0.8 Accept-Encoding:gzip,deflate,sdch Accept-Language:zh-CN,en ; q = 0.8,fr; q = 0.6,he; q = 0.4緩存控制:max-age = 0連接:保持活動狀態主機:localtest.me:3000 If-None-Match:W /“ 1f1b2d0b822830bc74e7c47a116205be”升級-不安全請求:1用戶代理:Mozilla / 5.0(Macintosh; Intel Mac OS X 10_10_3)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 45.0.2454.85 Safari / 537.36
這是紅寶石代碼:
before_action :cache_control, only: [:index, :show]
def cache_control
expires_in 1.day, public: true, must_revalidate: true
end
好吧,標題很好,這只是瀏覽器如何對待重新加載按鈕或快捷鍵的度量。
我在這里找到了答案: https : //stackoverflow.com/a/16510707/789658
這是chrome中的發現:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.