细说ASP.NET Core静态文件的缓存方式

本文详细介绍了ASP.NET Core中静态文件的缓存方式,包括StaticFileMiddleware的默认缓存规则、设置文件缓存时间、为静态文件提供版本号的方法。通过这些策略,可以提高网站性能,减少服务器压力。同时,文章还探讨了ASP.NET Core与CDN的结合使用,以及在开发过程中如何处理静态文件的地址切换。
摘要由CSDN通过智能技术生成

一、前言

  我们在优化Web服务的时候,对于静态的资源文件,通常都是通过客户端缓存服务器缓存CDN缓存,这三种方式来缓解客户端对于Web服务器的连接请求压力的。

  本文指在这三个方面,在ASP.NET Core中静态文件的实现过程和使用方法进行阐述。当然也可以考虑使用反向代理的方式(例如IIS或Nginx),这些不是本文讨论的内容。

  本文重点展示如何通过StaticFileMiddleware中间件,提高网站的性能。虽然这不是唯一缓存文件的方式,我们还可以通过ResponseCacheAttribute特性为ASP.NET Core Mvc的Controller和Action进行缓存的设置。


二、StaticFileMiddleware

  1.文件服务与默认缓存规则

  当创建一个ASP.NET Core的项目时,查看Startup.Configure方法,就会看到默认模板生成的添加StaticFileMiddleware中间件的方法。

        
      
      
      
      
  1. public void Configure(IApplicationBuilder app)  

  2. {

  3.    // looging and exception handler removed for clarity

  4.    app.UseStaticFiles();

  5.    app.UseMvc(routes =>

  6.    {

  7.        routes.MapRoute(

  8.            name: "default",

  9.            template: "{controller=Home}/{action=Index}/{id?}");

  10.    });

  11. }

  这样就使你的应用程序能够处理,程序目录下wwwroot目录的静态文件内容。在我们添加文件缓存之前,我们先要看一下StaticFileMiddleware默认的策略是怎么样的。当第一次加载程序时,浏览器将打开页面并下载所有的资源连接。假如页面没有错误返回都是正确那么就是返回文件数据和Http Status为200 -OK的状态。

 

  然后我们看下这个Http请求对应的Response Header,这里会包含ETagLast-Modified两个值。HTTP内容如下:

        
      
      
      
      
  1. HTTP/1.1 200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值