OutputCacheディレクティブを使用してキャッシュしたいページがあります。ただし、URL書き換えモジュールを使用して、複数のURLをそれぞれ異なる内容のこのページに誘導しています。URLに基づいてOutputCacheを変更する
各URLの出力にキャッシュを使用する方法はありますか?キャッシュ結果を変更する必要がある他の基準はありません。
OutputCacheディレクティブを使用してキャッシュしたいページがあります。ただし、URL書き換えモジュールを使用して、複数のURLをそれぞれ異なる内容のこのページに誘導しています。URLに基づいてOutputCacheを変更する
各URLの出力にキャッシュを使用する方法はありますか?キャッシュ結果を変更する必要がある他の基準はありません。
これは修正するのは非常に簡単でした。
がキャッシュされる必要があるページに次のディレクティブを追加します。
<%する@ outputcache期間= "600" の場所= "下流" varybyparam = "なし" varybycustom = "RawURL" %>
public override string GetVaryByCustomString(HttpContext context, string custom)
{
switch (custom.ToUpper())
{
case "RAWURL":
return context.Request.RawUrl;
default:
return "";
}
}
プログラムでは、Response.Cacheを使用してキャッシュオプションを設定できます。クエリ文字列変数をオンにすることができます。場合によっては、Response.Cacheのプロパティを適切に設定します。最後に
MSDN on Cache object
Another helpful article from aspalliance.com
私もCACを変えることができGlobal.asaxファイルに、このメソッドを追加します。彼はリクエストヘッダーに基づいていますが、これらは変更されず、クエリーストリング変数は使用されません – Blatfrig
これは賢いですが、ルーティングされていないURLと同じように304(Not Modified)ではなく200を返しています。だから、ページを再び生成しないかもしれませんが、クライアントはローカルキャッシュを使うのではなく、もう一度*取得する必要があります。それでも、良い質問。 – harpo