我有一个以 gzip 格式保存的 html 文件。浏览器显示 html 文件,但没有 javascript 和 CSS。同一目录中的非压缩 html 文件可以正确显示。此外,我从压缩的 html 文件中保存了源代码,它正确地重新打开,并应用了 JS 和 CSS。
显示不允许它获取 JS 和 CSS 的压缩 html 有什么不同?
我有一个以 gzip 格式保存的 html 文件。浏览器显示 html 文件,但没有 javascript 和 CSS。同一目录中的非压缩 html 文件可以正确显示。此外,我从压缩的 html 文件中保存了源代码,它正确地重新打开,并应用了 JS 和 CSS。
显示不允许它获取 JS 和 CSS 的压缩 html 有什么不同?
基本问题是您不能只在浏览器需要 CSS 的地方提供 gzip 文件。就其本身而言,这与返回 JPEG 或火腿三明治一样不起作用。
当内容被动态压缩时,响应会有所不同——响应说“我是文本/css,但是碰巧用 gzip 编码进行传输”。浏览器可以弄清楚这一点。
如果您在本地提供 gzip 压缩文件,一些 Web 服务器(如 Apache)也会为您做这种事情。但我想你的服务器不是。
为什么它适用于 HTML?嗯,我不知道,也许您的浏览器实际上在这种特殊情况下设法弄清楚?
您最终想要做的是使用 Content-Type: text/css 和 Content-Encoding: gzip 提供响应以使其正确识别。
如果您在自己的服务器(如 XAMPP)上使用 Localhost,
那么您需要配置 .htaccess 文件以发送正确的
标头,表明文件可能已被 gzip 压缩。
尝试将此添加到您的主 .htaccess 文件中:
AddEncoding x-gzip .gz
AddType text/html .gz
并确保您的 gzip 压缩
文件以.gz扩展名结尾。
另外,总是在服务器上运行它.. :)