WebResource.axd和HTTP标头

BnW*_*and 2 asp.net webresource.axd http-headers

我们的网站刚刚从.NET 1.1迁移到.NET 3.5,并在此过程中更新了我们的第三方服务器控件.其中一个包使用通过WebResource.axd提供的javascript.这些包含在普通<script src="" />标签中.

但是,观察流量时,我发现这些javascript文件遇到了阻止客户端缓存的标头.我们正在谈论很多javascript.有问题的标题:

Cache-control: no-cache, no-store
pragma: no-cache
Expires: -1

这些标头是否可以在.NET中进行配置?我可以在构建HttpModule之前拦截这些请求吗?这是否可以归咎于控制供应商?<brandish weapon="blameGun" />

谢谢,

男爵

Joh*_*sch 7

你可以尝试:

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public);
Run Code Online (Sandbox Code Playgroud)

其他类型的HttpCacheability文件记录在这里:

http://msdn.microsoft.com/en-us/library/system.web.httpcacheability.aspx

编辑:

您可以将其放在Global.asax文件中而不是模块中:

void Application_AuthorizeRequest(object sender, EventArgs e)
{
    if (Request.Path.IndexOf("WebResource.axd") > -1)
    {
        Response.Cache.SetCacheability(HttpCacheability.Public);
    }
}
Run Code Online (Sandbox Code Playgroud)


Ata*_*hev 5

如果您的网站<compilation debug="true">在其web.config中使用set进行部署,则可能会发生这种情况.在这种情况下,禁用缓存可以更轻松地调试用作嵌入式资源的JavaScript文件.解决方案是简单地将编译标记的debug属性设置为false.更多信息可以在这篇优秀的博客文章中找到.