How to disable browser cache in ASP.NET core rc2?

前端 未结 3 1596
伪装坚强ぢ
伪装坚强ぢ 2020-12-03 09:47

I tried this Middleware but the browser still saving files.

I want user will always get the last version of js and css files.

public void Configure(I         


        
相关标签:
3条回答
  • 2020-12-03 10:31

    Disabling browser cache in ASP.NET core:

    public class HomeController : Controller
    {
        [ResponseCache(NoStore =true, Location =ResponseCacheLocation.None)]
        public IActionResult Index()
        {
            return View();
        }
    }
    
    0 讨论(0)
  • 2020-12-03 10:43

    Try adding an Expires header as well:

    app.UseStaticFiles(new StaticFileOptions()
    {
        OnPrepareResponse = context =>
        {
            context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store");
            context.Context.Response.Headers.Add("Expires", "-1");
        }
    });
    

    Another approach would be to add a querystring that changes to the end of your requests in development. Middleware would not be required in this case.

    <environment names="Development">
        <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css?@DateTime.Now.Ticks" />
        <link rel="stylesheet" href="~/css/site.css?@DateTime.Now.Ticks" />
    </environment>
    
    0 讨论(0)
  • 2020-12-03 10:45

    Another way would be using an ASP-Attribute when you link your files in your _Layout.cshtml by using asp-append-version you will add a fresh hash everytime the file changed, so writing:

    <script src="~/js/minime.js" asp-append-version="true"></script>
    

    will in the end lead to:

    <script src="/js/minime.js?v=Ynfdc1vuMOWZFfqTjfN34c2azo3XiIfgfE-bba1"></script>` 
    

    so you get caching and the latest version out of the box.

    0 讨论(0)
提交回复
热议问题