GZIP CSS完全打破页面

Mar*_*ian 6 css compression .htaccess gzip zlib

谢谢你的光临.我自己真的尝试过这个,但是再一次对我来说似乎太过分了.

情况......


我和我自己的网站住在一个共享的主机上.当我想要压缩我的大量cms生成的js和css以使PageSpeedInsights和我自己开心时,我读到它并最终发现我的主机没有安装mod_gzip和mod_deflate.安装的是ZLIB.所以我搜索了.找到了典型的php附加解决方案并且不喜欢它.为htaccess找到了一些简洁的代码,这让我很开心因为他们马上工作了:

AddHandler application/x-httpd-php .html .htm .php .js
php_flag output_buffering On
php_value output_handler ob_gzhandler
php_flag zlib.output_compression Off
Run Code Online (Sandbox Code Playgroud)

我通过使用GIDZipTest确认它正在工作.这一切都很好,我喜欢它.

但是只要我将.css放到AddHandler列表中,我的页面就会完全中断.
我尝试使用带有ob_gzhandlerphp解决方案仅用于css文件,但它最终完全没有工作.只是做什么都没有.


解决方法吗?(并不是的)


我手动缩小了所有的CSS并上传了每个文件的css.gz版本,并提供了它

RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
Run Code Online (Sandbox Code Playgroud)

这也很好.


的问题!


  1. 我需要为css压缩定义/指定什么才能工作?我觉得我只是错过了一些转换的东西......

  2. 当我将我的手动缩小的.css.gz文件提供给客户端时,它们是否仍会被额外压缩?

  3. 这会在文件大小方面有任何进一步的优势吗?或者我应该坚持使用手动提供的版本并提供关于Google PageSpeed的**?
    (即使对于缩小的文件,GIDZipTest仍会显示"如果"场景,这是令人印象深刻的数字,说实话.我想那样......)

提前感谢您给出的任何评论.
此致

玛丽安

Mar*_*ian 0

因此,如果您遇到类似的问题,我建议您阅读本文并正确获取完整的 Web 目录路径

创建一个 php 脚本(例如:“gzip-css.php”)

<?php
ob_start("ob_gzhandler");
header("content-type: text/css; charset: UTF-8");
?>
Run Code Online (Sandbox Code Playgroud)

并在其前面加上 .htaccess

<FilesMatch "\.css$">
ForceType application/x-httpd-php
php_value auto_prepend_file "/full/path/to/that/file/see/link/above/gzip-css.php"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

到所有 .css 文件。到目前为止,这似乎是我唯一的解决方案。如果我之前没有找到我的完整路径,我就可以正确地做到这一点,而无需在这里询问。也许有人仍然对如何将 AddHandler 版本与 css 结合起来有更好的想法。

不起作用的事情(完全禁用所有 css):
- 将 .css 添加到 AddHandler 和任何上述(包括我的)解决方案。
- 手动提供 gzip 压缩的 css 文件并在前面添加内容类型脚本
- 两者的组合