私は asp.net Web サイトを持っており、クライアント ブラウザーが aspx ページの HTML 出力を取得したらキャッシュするようにしたいと考えています。いろいろ読んでみると、IIS7 はこれをそのままサポートしていないことがわかったのでOnLoad
、メイン マスター ページのイベントに次のコードを追加しました。
protected override void OnLoad(EventArgs e) {
DateTime dt = DateTime.Now.AddDays(10);
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(dt);
Response.Cache.SetMaxAge(new TimeSpan(dt.Ticks - DateTime.Now.Ticks));
base.OnLoad(e);
}
これで、応答ヘッダーに次のように表示されます。
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Date: Fri, 05 Jul 2013 14:25:03 GMT
Content-Length: 10201
たぶん、私はこれを無効にするためにずっと前に何かをしたのかもしれませんが、私はできません。Google を検索したときにこれに関する情報が見つからない場合、おそらくcache-control
aspx ページの場合は良い考えではないと思います...しかし、クラウドフロント (CDN) がサイト全体の配信を許可するには、これが必要です。