C# 对简单静态文件使用VirtualPathProvider

C# 对简单静态文件使用VirtualPathProvider,c#,.net,asp.net,C#,.net,Asp.net,我们正在使用自定义VirtualPathProvider为基于ASP.NET的网站上的文件提供服务。为了服务于静态文件,比如图像、css和脚本,我们明确声明应该使用StaticFileHandler来处理具有此扩展名的文件。像这样: <add verb="GET" path="*.jpg" type="System.Web.StaticFileHandler"></add> ,这似乎与我们的问题有关。它指的是。但是现在还不清楚,这个补丁还没有应用到这个框架中吗?差不多一

我们正在使用自定义VirtualPathProvider为基于ASP.NET的网站上的文件提供服务。为了服务于静态文件,比如图像、css和脚本,我们明确声明应该使用StaticFileHandler来处理具有此扩展名的文件。像这样:

<add verb="GET" path="*.jpg" type="System.Web.StaticFileHandler"></add>
,这似乎与我们的问题有关。它指的是。但是现在还不清楚,这个补丁还没有应用到这个框架中吗?差不多一年过去了。如果没有,在哪里可以买到
更新:
来自的修补程序似乎包含在.NET Framework 3.5 SP1中。我们已经安装好了

更新2
现在,我们已经结束了这个HttpModule,如果当前处理程序是StaticFileHandler,它将添加缓存头。但这绝对是一个拐杖。

在IIS、网站属性和缓存选项卡中尝试活动缓存。在我的情况下,效果非常好。

令人难以置信的是,内置的一个不能做到这一点。这看起来很有希望:

您是否曾经使用过嵌入式虚拟路径提供商?我正在尝试,因为Datatables JS每次只有几个100kb,没有cachingnope,不幸的是仍然在TODO列表中。直接包含js文件或使用RequestReduce可能是最容易的。是的,我遵循了设置,它似乎提供普通的js文件,但不提供用于数据表的文件。切换回时,它可以在不缓存的情况下工作。考虑只包括或可能包括一个基本模块,以从dll添加缓存资源,用于每周等(假设我们在这里讨论的是Mvc.Jquery.Datatables),如果您安装.Templates项目,它应该将正确的JS放入您的项目中。如果不安装VPP,那么默认的StaticFileHandler应该可以处理这些文件。如果你在github上提出问题,我们可以进一步讨论这个问题。如果你成功实现了这个,我们可以吗?!为此,您不需要自定义模块/处理程序。我应该说,这是一种非常粗糙的方法。每次调用“Open”方法时,您都会访问全局可用的当前HttpResponse并修改其缓存头。虽然这会起作用,但它是比自定义处理程序更糟糕的解决方案。