【问题标题】:IIS7: Setting far future expires header on specific filesIIS7:在特定文件上设置远期过期标头
【发布时间】:2009-07-28 22:46:55
【问题描述】:

在 IIS7 中,我试图为所有文件名中包含特定单词的内容设置一个非常遥远的过期标头。例如,我想在 IIS7 请求的任何文件上设置此标头,即

*cached*.js

我知道可以设置远期过期标头,但我想知道是否可以像上面的示例一样在特定文件上设置它。

我想在我尝试提供服务的 .NET 应用程序上使用此方法,但我想让它更高效,以便某些文件将被缓存很长时间,因为它实际上永远不会改变。 同时我不想被限制为对某个文件夹中的所有文件或某种类型的所有文件执行此操作。

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

各位,你们觉得有没有办法做到这一点?

【问题讨论】:

    标签: asp.net iis-7


    【解决方案1】:

    一个 HttpModule 可以让你做到这一点。这将让您查看传入的 URL,然后添加正确的响应标头。

    编辑:添加示例

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

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

    【讨论】:

    • 你知道我在哪里可以找到编写 HttpModule 的例子吗?
    • 那么,没有像 Apache 那样的声明方式吗?
    猜你喜欢
    • 2010-12-08
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    相关资源
    最近更新 更多