为什么GZip压缩不适用于.css和.js,而只适用于.php文件扩展名

时间:2014-09-01 16:42:55

标签: php apache compression gzip mod-deflate

在我们(​​已更新的?已迁移)共享托管服务器上GZipping文件时出现一个奇怪的问题。

检查包含文件夹/_inc/中的这两个相同的文件完全相同的内容(php代码),目的是收集,缩小和生成来自各种源cdd文件的单个Gzip压缩文件。现在,以php结尾的文件似乎得到了很好的GZip,但是以扩展名css和js结尾的文件还没有得到GZipped ......

/_inc/all.css(24 kbyte,扩展不会让自己Gzipped)
/_inc/allcss.php(5千字节!扩展让自己Gzipped)

将扩展名从css更改为php会使文件压缩,但是浏览器仍然更喜欢使用css扩展来获得最佳缓存...

问:为什么只有以php结尾的文件是Gzip ,而以css和js扩展名结尾的php文件不是Gzip的?如何为css和js扩展实现Gzipping?如何将主.htacces或php.ini设置为Gzip所有.php,.css,.js文件?


  

/.htaccess (用于压缩的root .htaccess文件部分)

## interpreted extensions as php
AddType application/x-httpd-php .php
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
#AddType text/css css
#AddType text/javascript js

## compress speficic filetypes BUTTTT doesn't work anymore since server upgrade!
## with or without the code below the result is the same!
<IfModule mod_deflate.c>
<FilesMatch "\.(js|css|eot|ttf|svg|xml|php|txt)$">
    SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

  

/ _ inc / .htaccess (.htacces文件使css和js文件解释为php文件)

AddType application/x-httpd-php-cgi .js .css
Action application/x-httpd-php-cgi /cgi-php/php-cgi

  

php.ini (来自运行PHP 5.3.28的Apache服务器)

session.gc_maxlifetime = 1440
session.name = PHPSESSID
session.save_handler = files
session.serialize_handler = php
zlib.output_compression = On
zlib.output_handler = ob_gzhandler
allow_call_time_pass_reference = 
implicit_flush = Off

0 个答案:

没有答案