【问题标题】:Why does gzipped html file display without JS and CSS?为什么 gzipped html 文件显示没有 JS 和 CSS?
【发布时间】:2010-10-26 08:49:21
【问题描述】:

我有一个以 gzip 格式保存的 html 文件。浏览器显示 html 文件,但没有 javascript 和 CSS。同一目录中的非压缩 html 文件可以正确显示。此外,我从压缩的 html 文件中保存了源代码,它正确地重新打开,并应用了 JS 和 CSS。

显示压缩后的 html 有什么不同,它不允许它获取 JS 和 CSS?

【问题讨论】:

  • 您正在压缩文件以进行传输,对吗?您没有在本地 gzip 并将该文件放在您的服务器上吗?
  • 不,我没有。我的 cgi 应用程序将文件压缩到执行时。然后这些文件被压缩在服务器上,准备好被调用。我使用的是嵌入式 Web 服务器,它不支持 gzip 或动态压缩。
  • 如果 html 显示正确,则 JS 和 CSS 引用或 URL 一定有问题。您包含这些文件的方式有什么奇怪/不同的地方吗? (当然,如果您至少可以向我们提供公共 URL 或代码,那将是最简单的,等到有人猜到问题是获得答案的最慢方法)

标签: javascript html css compression gzip


【解决方案1】:

基本问题是您不能只在浏览器需要 CSS 的地方提供 gzip 文件。就其本身而言,这与返回 JPEG 或火腿三明治一样不起作用。

当内容被动态压缩时,响应会有所不同——响应说“我是 text/css,但是碰巧用 gzip 编码进行传输”。浏览器可以弄清楚这一点。

如果您也在本地提供 gzip 压缩文件,一些 Web 服务器(如 Apache)也会为您做这种事情。但我想你的服务器不是。

为什么它适用于 HTML?嗯,我不知道,也许您的浏览器实际上在这种特殊情况下设法解决了这个问题?

您最终想要做的是使用 Content-Type: text/css 和 Content-Encoding: gzip 提供响应以使其正确识别。

【讨论】:

    【解决方案2】:

    如果您在自己的服务器上使用 Localhost(例如 XAMPP)
    那么你需要配置.htaccess文件来发送正确的
    表示文件可能已压缩的标头。

    尝试将此添加到您的主 .htaccess 文件中:

    AddEncoding x-gzip .gz
    AddType text/html .gz
    

    并确保您的 gzip 压缩
    文件以 .gz 扩展名结尾。

    另外,总是在服务器上运行它.. :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 2022-01-26
      • 2015-09-10
      • 2015-03-20
      相关资源
      最近更新 更多