【问题标题】:OutputCache VaryByContentEncodings gzip doesn't workOutputCache VaryByContentEncodings gzip 不起作用
【发布时间】:2011-10-07 17:57:45
【问题描述】:

我已将 OutputCache 设置为在我的 ASP.net ASPX 页面中包含 'VaryByContentEncodings="gzip"'。我希望页面提供不同的 css 文件,如果浏览器支持它,则为 gzipped,如果浏览器不支持压缩,则为常规非压缩。

例子:

<%@ OutputCache Duration="320" VaryByParam="none" VaryByContentEncodings="gzip"  %>   

当我运行代码时,我收到以下错误:

页面中的“outputcache”指令不支持“varybycontentencodings”属性。

我不知道是什么问题以及为什么它不起作用。其次,您是否认为通过提供不同的 gzip/非压缩 CSS,我正在做正确的事情。请注意,这些文件是从 Amazon S3 提供的,所以我不能依靠 IIS 或 .NET 引擎自动返回压缩文件。这就是为什么我想服务于页面的单独缓存版本。

在这似乎没问题,但它不起作用(使用 ASP.NET 4.5):

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

我们将不胜感激。

【问题讨论】:

    标签: c# asp.net caching encoding outputcache


    【解决方案1】:

    有趣的错误,我刚刚忘记输入 Location 属性,因此出现错误。然而,微软将这段代码放在他们的网站上,这让我认为这段代码应该按原样工作。

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

    【讨论】:

      【解决方案2】:
      • 什么版本 您的应用程序池正在运行吗?
      • 指令是在页面、控件还是 母版页?

      .NET Framework 版本中引入了 VaryByContentEncodings 3.5.

      HttpCachePolicy.VaryByContentEncodings Property

      【讨论】:

        【解决方案3】:

        我刚刚遇到了同样的问题。问题是 - Visual Studio 智能感知建议您使用不正确的属性名称。正确的是“VaryByContentEncoding” - 最后没有“s”。

        正确:

        <%@ OutputCache ... VaryByContentEncoding="gzip"  %>
        

        不正确:

        <%@ OutputCache ... VaryByContentEncodings="gzip"  %>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-18
          • 2013-07-26
          • 2011-12-29
          • 1970-01-01
          相关资源
          最近更新 更多