【问题标题】:apache mod_deflate for css and js用于 css 和 js 的 apache mod_deflate
【发布时间】:2012-02-20 10:27:52
【问题描述】:

.htaccess

<ifmodule mod_deflate.c>
# compress the files
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# removes some bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</ifmodule>

对于 php 文件

 <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
ob_start("ob_gzhandler"); else ob_start(); ?>

对于 php 文件,一切正常,但对于 css、js 文件则不行。有什么建议吗?

【问题讨论】:

  • 愚蠢的问题.. 你真的启用了 mod_deflate 吗?当且仅当 mod_deflate 加载时,上述配置的东西..
  • 是的,我有 SetOutputFilter DEFLATE
  • 我猜 faux 是在设置 httpd.conf 你是否启用了 mod_deflate

标签: php css apache


【解决方案1】:

要测试 mod_deflate 是否真正起作用,请尝试将其放在 httpd.conf 文件的顶部:

LoadModule deflate_module modules/mod_deflate.so

在您的 httpd.conf 文件的底部:

##############################################
#Mod Deflate Config:
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '(%{ratio_info}n%%) "%r" %{output_info}n/%{input_info}n' deflate
CustomLog logs/compression.log deflate
###############################################

仅当浏览器发送 gzip-ready 标头时,这将压缩几乎所有内容。

在您的网站上获得一些点击后,请检查 apache 日志文件夹中的“compression.log”。 发布输出。

【讨论】:

  • 当我把 LoadModule deflate_module modules/mod_deflate.so 这个放在 .htaccess 中它说 500 Internal Server Error
  • 你能检查一下你有没有文件吗?打开 apache/modules/ 看看它是否确实存在。 (请检查 error.log 并发布输出)。并确保只调用一次,如果您已经启用了该行,则不要添加另一个。
  • 我无法访问那个 .. 女巫的意思是我必须写信给托管公司
  • 请问是哪家公司?因为如果是真正的托管公司,请查看 mod_gzip,它更擅长压缩文件。
  • 是的,是的,是我们国家最好的公司:D
【解决方案2】:

在 httpd.conf 中确保该行没有被注释

LoadModule deflate_module modules/mod_deflate.so

如果是则取消注释并重新启动apache服务

【讨论】:

    猜你喜欢
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2018-08-03
    相关资源
    最近更新 更多