为什么 ASP.NET gzip 压缩会破坏 CSS?

发布于 2024-07-05 16:28:35 字数 489 浏览 6 评论 0原文

我正在开发一个 ASP.NET Webforms 应用程序 (3.5 SP1),并尝试启用 gzip fpr HTML 和 CSS。 我正在使用此实现(并尝试了很少有其他挂钩到Application_BeginRequest),并且它似乎正在破坏页面使用的外部CSS文件,但间歇性地......突然所有样式都会在页面刷新时消失,保持这种状态一段时间,然后突然再次开始工作。

IE7 和 FF3 都表现出这种行为。 使用 Web 开发人员工具栏查看 CSS 时,它会返回乱码。 缓存控制标头以“私有”形式出现,但我不知道这是否是一个影响因素。

此外,它运行在 ASP.NET 开发服务器上。 也许使用 IIS 就可以了,但我在 XP 上进行开发,所以应该是 IIS5。

I have an ASP.NET webforms application (3.5 SP1) that I'm working on, and attempting to enable gzip fpr HTML and CSS that comes down the pipe. I'm using this implementation (and tried a few others that hook into Application_BeginRequest), and it seems to be corrupting the external CSS file that the pages use, but intermittently...suddenly all styles will disappear on a page refresh, stay that way for awhile, and then suddenly start working again.

Both IE7 and FF3 exhibit this behavior. When viewing the CSS using the web developer toolbar, it returns jibberish. The cache-control header is coming through as "private," but I don't know enough to figure out if that's a contributing factor or not.

Also, this is running on the ASP.NET Development Server. Maybe it'd be fine with IIS, but I'm developing on XP and it'd be IIS5.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一口甜 2024-07-12 16:28:35

只有 CSS 文件会被损坏吗? JS 文件(或任何其他静态文本文件)是否正常通过?

如果直接浏览 CSS 文件,是否可以复制该行为?

我仅使用以下方法在 Windows 2003 服务器的 IIS 上启用压缩:

  1. IIS → 网站 → 属性 → 服务选项卡,选中两个复选框
  2. IIS → Web 服务扩展 → 右键单击​​,添加新
    名称 
            HTTP压缩  
        所需文件 
            %systemroot%\system32\inetsrv\gzip.dll 
  3. IIS → 右键单击​​顶部节点,Internet 信息服务,选中启用直接元数据库编辑
  4. 备份和编辑 %systemroot%\system32\ inetsrv\MetaBase.xml
    1. 查找位置="/LM/W3SVC/Filters/Compression/gzip"
      • pngcssjs 和任何其他静态文件扩展名添加到 HcFileExtensions
      • aspx 和任何其他可执行扩展添加到 HcScriptFileExtensions
      • 保存
  5. 重新启动 IIS(运行 iisreset

如果您有 Windows 2003/2008 服务器可以使用,您可以尝试这种方法。

Is it only CSS files that get corrupted? Do JS files (or any other static text files) come through ok?

Also can you duplicate the behavior if you browse directly to the CSS file?

I've only enabled compression on Windows 2003 server's IIS using this approach:

  1. IIS → Web Sites → Properties → Service tab, check both boxes
  2. IIS → Web Service Extensions → Right click, Add New
      Name
          Http Compression 
      Required Files
          %systemroot%\system32\inetsrv\gzip.dll 
  3. IIS → Right click top node, Internet Information Services, check Enable Direct Metabase Edit
  4. Backup and Edit %systemroot%\system32\inetsrv\MetaBase.xml
    1. Find Location ="/LM/W3SVC/Filters/Compression/gzip"
      • Add png, css, js and any other static file extensions to HcFileExtensions
      • Add aspx and any other executable extensions to HcScriptFileExtensions
      • Save
  5. Restart IIS (run iisreset)

If you have a Windows 2003/2008 server to play with you could try that approach.

眼睛会笑 2024-07-12 16:28:35

如果您要在 IIS 6 或 IIS 7 上进行部署,只需使用内置的 IIS 压缩即可。 我们在生产站点上使用它来压缩 HTML、CSS 和 JavaScript,并且不会出现错误。 它还将压缩版本缓存在服务器上,因此压缩命中仅进行一次。

If you will be deploying on IIS 6 or IIS 7, just use the built-in IIS compression. We're using it on production sites for compressing HTML, CSS, and JavaScript with no errors. It also caches the compressed version on the server, so the compression hit is only taken once.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文