gpt4 book ai didi

c# - 在 asp.net 中以编程方式设置 "expires"http header 的值

转载 作者:太空狗 更新时间:2023-10-29 22:16:28 26 4
gpt4 key购买 nike

在 ASP.NET 站点中,我想向某些静态文件添加“Expires” header ,因此我为这些文件所在的文件夹添加了这样的 clientCache 配置:

<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseExpires" httpExpires="Wed, 13 Feb 2013 08:00:00 GMT" />
</staticContent>

如果可能,我想以编程方式计算 httpExpires 的值,例如将其设置为文件上次更新的时间 + 24 小时。

有没有办法配置缓存控件通过调用方法获取httpExpires的值?

如果不能,有什么替代方案?我考虑过编写自定义 http 处理程序,但也许有更简单的解决方案...

编辑:请注意这些是静态文件,因此它们不由常规的 asp.net 页面处理程序提供服务。

最佳答案

您可以使用 Response.Cache 以编程方式设置缓存。

Here's 一个漂亮的教程。

基本上,您希望将缓存策略设置为 Public(客户端 + 代理)并设置过期 header 。有些方法的命名相当笨拙,但这个方法很简单。

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public);
HttpContext.Current.Response.Cache.SetExpires(yourCalculatedDateTime);

(ASP.NET 设计人员不太喜欢得墨忒耳法则,对吗?)

或者,您可以通过 Response.Headers 集合访问消息,您可以在其中明确更改它们。

这两种方式都可以在所有 ASP.NET 处理程序(aspx、asmx)中访问,并且可以在您可以访问当前 HttpContext 的任何地方进行更改。

关于c# - 在 asp.net 中以编程方式设置 "expires"http header 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14834853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com