gpt4 book ai didi

c# - GZipping ASP.NET MVC 3 中的内容文件

转载 作者:太空狗 更新时间:2023-10-30 00:26:50 26 4
gpt4 key购买 nike

我使用以下属性来装饰我的 BaseController 类。

public class OutputCompressAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(encodingsAccepted))
return;

encodingsAccepted = encodingsAccepted.ToLowerInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;

if (encodingsAccepted.Contains("gzip"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (encodingsAccepted.Contains("deflate"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}

问题是,尽管这对 View 和每个操作结果都很好,但该属性不适用于项目的 /Content 文件夹中的内容。我想知道如何才能使 Content 文件夹中的文件使用 Controller ,或者以某种方式绑定(bind)或 Hook ,从而允许我将这些过滤器附加到响应 header 。

最佳答案

您可以 activate compression 而不是编写这样的 Action 过滤器并重新发明轮子在 IIS 中。您可以对静态和动态内容执行此操作。

关于c# - GZipping ASP.NET MVC 3 中的内容文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235337/

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