IIS7:设置远期将来到特定文件的标头

时间:2009-07-28 22:46:56

标签: asp.net iis-7

在IIS7中,我试图为所有具有文件名的内容设置一个真正远期的expires标头。例如,我想在IIS7中请求的任何文件

上设置此标头
*cached*.js

我知道可以设置远期未来的过期标题,但我想知道是否可以在特定文件上设置它,如上例所示。

我想在我试图提供的.NET应用程序上使用此方法,但我想提高它的效率,以便某些文件将被缓存很长一段时间,因为它实际上永远不会改变。 与此同时,我不希望仅限于对特定文件夹中的所有文件或特定类型的所有文件执行此操作。

我愿意通过修改我的Asp.Net应用程序来实现这一目标,或通过IIS7设置。

那么伙计们,您怎么看?有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

HttpModule可以让你这样做。这样您就可以查看传入的URL,然后添加正确的响应标头。

修改:添加了示例

您可以使用this URL创建基本的HttpModule。然后在Application_BeginRequest事件中,我认为这段代码将接近您想要的内容:

if (context.Request.FilePath.ToLower().IndexOf("cached") != -1)
    context.Response.Cache.SetExpires(DateTime.Now.AddYears(1));