C# Global.asax上的ASP.NET gzip脚本和CSS

C# Global.asax上的ASP.NET gzip脚本和CSS,c#,javascript,asp.net,css,gzip,C#,Javascript,Asp.net,Css,Gzip,我正在应用程序中实现此库 如果我在VisualStudio中运行该站点,它工作得非常好,但是当我编译我的站点并在IIS中发布时,它只包含gzip ASPX文件,而不是CSS或JavaScript文件 是否有更好的方法在与Visual Studio 2005相对应的C#中实现JavaScript和CSS gzip(更改IIS不是一个选项,因为它必须在代码中出现)。首先,您需要创建一个HttpHandler来处理它: namespace com.waynehartman.util.web.handl

我正在应用程序中实现此库

如果我在VisualStudio中运行该站点,它工作得非常好,但是当我编译我的站点并在IIS中发布时,它只包含gzip ASPX文件,而不是CSS或JavaScript文件


是否有更好的方法在与Visual Studio 2005相对应的C#中实现JavaScript和CSS gzip(更改IIS不是一个选项,因为它必须在代码中出现)。

首先,您需要创建一个HttpHandler来处理它:

namespace com.waynehartman.util.web.handlers
{
    [WebService(Namespace = "http://waynehartman.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class HttpCompressor : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            // Code for compressing the file and writing it to the HttpResponse
        }
        public bool IsReusable
        {
            get { return true; }
        }
    }
}
然后需要在web.config中添加处理程序映射:

<configuration>
    <system.web>
        <httpHandlers>
            <add verb="*" path="*.css" 
                type="com.waynehartman.util.web.handlers.HttpCompressor, WayneHartmanUtilitiesLibrary"/>
            <add verb="*" path="*.js" 
                type="com.waynehartman.util.web.handlers.HttpCompressor, WayneHartmanUtilitiesLibrary"/>
        </httpHandlers>
    </system.web>
</configuration>


您使用的IIS版本是什么?并且完全限定。就我所知,HttpHandler是将多个文件合并到一个文件中,或者类似的东西。@jmpena HttpHandler用于创建对http请求或响应的任何自定义处理。它们的设计目的是让您能够完全完成您正在尝试的操作。好的,我将尝试您的解决方案,但只有一个问题(我是win32开发人员),您将其作为Web服务或可以作为我的网站中的类的代码?@jmpena[webservice]标记在您通过Visual Studio创建新的通用处理程序时默认显示在那里。我不确定移除它们会有什么副作用,因为它们不会伤害你。尝试将http处理程序看作是一个基本的、非专业化的aspx页面。与.NET为您处理页面请求不同,您可以完全控制请求/响应的内容。