1

我正在使用 asp.net 2.0 (C#) 开发一个应用程序,我正在尝试实现我的文件的压缩,以便我的网站的性能得到改善。

为此,我在 Global.asax 文件中添加了一个代码来压缩所有请求(.aspx、.js、.css)但是当我运行我的应用程序时,它第一次运行良好,然后 CSS 没有加载并且网页是没有正确渲染。

为什么会这样??

已编辑(添加了我的压缩代码)

我的 Global.asax 文件的压缩代码如下:

void Application_BeginRequest()
    {
        HttpContext incoming = HttpContext.Current;
        string oldpath = incoming.Request.Path.ToLower();

        incoming.Response.Filter = new GZipStream(incoming.Response.Filter, CompressionMode.Compress);
        HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
        HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;
    }

另外请让我知道是否有其他更好的方法来做同样的事情,使用 Global.asax 文件,因为我没有 IIS 设置的访问权限,也没有实现 HttpModule 的权限,这就是为什么我正在使用 Global.asax 文件。

谢谢

4

1 回答 1

3

对于静态文件,您可以配置 IIS 为您进行压缩,无需自己实现。

在 IIS6 中,这是一个全局设置(IIS 管理器中“网站”节点的属性,服务选项卡)。

在 IIS7 中,这是基于每个文件夹设置的,它还会为您压缩动态内容。它可以在 IIS 管理器或web.config文件中设置:

<configuration>
  <system.webServer>
    <urlCompression doDynamicCompression="true" doStaticCompression="true" />
  </system.webServer>
</configuration>
于 2009-02-21T15:22:31.423 回答