微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在Asp.Net WebForm中压缩JavaScript和CSS

我使用C# Asp.net 4,
我在Global.asax中有这个脚本.我能够gzip所有的asp.net页面,但不是 JavaScripts和CSS.
我想知道是否有可能直接在我的网络应用程序中压缩CSS和JS,或者它可能只在IIS中.如果可能,请指出我在我的代码中遗漏的内容.
谢谢

protected void Application_PreRequestHandlerExecute(object sender,EventArgs e)
    {
        HttpApplication app = sender as HttpApplication;
        string acceptEncoding = app.Request.Headers["Accept-Encoding"];
        Stream prevUncompressedStream = app.Response.Filter;

        if (!(app.Context.CurrentHandler is Page ||
            app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
            app.Request["HTTP_X_MICROSOFTAJAX"] != null)
            return;

        if (acceptEncoding == null || acceptEncoding.Length == 0)
            return;

        acceptEncoding = acceptEncoding.ToLower();

        // if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
        if (acceptEncoding.Contains("gzip") || acceptEncoding == "*")
        {
            // gzip
            app.Response.Filter = new GZipStream(prevUncompressedStream,CompressionMode.Compress);
            app.Response.AppendHeader("content-encoding","gzip");

        }
        // else if (acceptEncoding.Contains("gzip"))
        else if (acceptEncoding.Contains("deflate"))
        {
            // defalte
            app.Response.Filter = new DeflateStream(prevUncompressedStream,"deflate");
        }
    }

解决方法

你确定* .css和* .js是由ASP.NET运行时处理的吗?它们不是认情况下,例如,您必须在web.config中将runAllManagedModulesForAllRequests设置为true.

另外,为什么不依赖IIS内置压缩?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐