0

私たちのASP.NET MVCサイトでは、CSS/JSバンドリング(System.Web.Optimizationバージョン1.1.3)が使用されています。ロールアウトプロセス中に問題が発生します。MVCキャッシュされたミニバンドルが新しいリリースの後で無効にならない

リリース(アドレスバー - >入力)を使用して最初のリクエストを行うと、バンドルされたファイルがローカルにキャッシュされています。ヘッダは以下のとおりです。その代わり、私は、キャッシュされたバージョンを提供することができるかどうか決定する前に、サーバー上の実際のファイルをチェックする304応答を持ちたい200の

dev tools cache directives

。 ctrl-f5やctrl-rのような特殊なコマンドを使わなくても、そうする方法はありますか?

答えて

0

のような属性を作成します。その後

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] 
public sealed class NoCacheAttribute : ActionFilterAttribute 
{ 
    public override void OnResultExecuting(ResultExecutingContext filterContext) 
    { 
     filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
     filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false); 
     filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
     filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     filterContext.HttpContext.Response.Cache.SetNoStore(); 

     base.OnResultExecuting(filterContext); 
    } 
} 

を、あなたはキャッシュを防ぐために、あなたのコントローラーの上に置くことができます。例

[NoCache] 
public HomeController : Controller 
{ 
    // .... 
} 

またはコントローラの上でこれを使用してください。

[OutputCache(NoStore = true, Duration = 0)] 
関連する問題