スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Sinatraでキャッシュを防ぐ

Sinatraで動的なアプリを組んでいると、ブラウザにキャッシュされては困るのでlayoutを以下のように組んで、キャッシュさせないようにしてました。

views/layout.haml
!!! 5
%head
%meta{'http-equiv' => 'content', content: 'text/html; charset=utf-8'}
%meta{'http-equiv' => 'Pragma', content: 'no-cache'}
%meta{'http-equiv' => 'Cache-Control', content: 'no-store'}
%meta{'http-equiv' => 'Cache-Control', content: 'no-cache'}
%meta{'http-equiv' => 'Expires', content: '-1'}
%body
!= yield

最初これで問題無くうごきまたが、プロキシーサーバーを経由する環境ではプロキシーサーバにキャッシュされてしまい、うまく動きませんでした。
プロキシーサーバはHTTPヘッダーを見て判断するので、metaタグだけでは対応できません。
そこで、Sinatraのafterフィルタでヘッダーを追加します。

after do
cache_control :no_cache
end


これでMacbook airのdolipo環境で問題無く動作しました。
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。