gpt4 book ai didi

compression - YSlow 为使用 mod_deflate 压缩的文件提供 F 级

转载 作者:行者123 更新时间:2023-12-04 14:53:10 28 4
gpt4 key购买 nike

我正在使用 mod_deflate Apache 2.2 并且压缩级别设置为 9。我已经根据 的建议微调了站点的所有可能方面。 YSlow (v2) 并设法获得了总体 A 级(总分:91)以及除以下各项外的所有类别:

  • 减少 HTTP 请求( C 级 -
    我还在进一步努力
    图像统一)
  • 使用 gzip ( Grade
    传真
    )

  • YSlow 仍然返回 F 并告诉我在我的 CSS 和 JS 文件中使用 gzip。以下是 YSlow 报告的截图(出于隐私考虑,域名已被模糊处理):
    screenshot of YSlow report

    但是,像 这样的网站GIDNetwork GZIP Test 报告完美压缩!!

    我的 .htaccess 的 mod_deflate 部分
    # Below uses mod_deflate to compress text files. Never compress binary files.
    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE

    # compress content with type html, text, js, and css
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript text/xml image/svg+xml application/javascript application/x-javascript application/atom_xml application/rss+xml application/xml application/xhtml+xml application/x-httpd-php application/x-httpd-fastphp

    # Properly handle old browsers that do not support compression
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Explicitly exclude binary files from compression just in case
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary

    # properly handle requests coming from behind proxies
    Header append Vary User-Agent env=!dont-vary
    </IfModule>

    谁能指出我哪里出错了?

    谢谢,
    米^e

    最佳答案

    可能是 mod_deflate 配置不正确。

    典型的 mod_deflate 配置可能会根据用户代理字符串排除某些浏览器,并且可能仅被配置为压缩某些文件类型 - 由它们在服务器上注册的 MIME 类型标识。

    您应该压缩所有的 HTML、CSS 和 Javascript 文件,而不是您的 PNG、GIF 或 JPEG 文件,并且 Netscape 4 存在一些错误,您可能想也可能不想考虑。尝试使用 sample code from the documentation :

    <Location />
    # Insert filter
    SetOutputFilter DEFLATE

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    # Don't compress images
    SetEnvIfNoCase Request_URI \
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
    </Location>

    另请注意,您发布的 GIDZipTest GZIP 测试不会测试关联的 Javascript 和 CSS 文件,而 YSlow 会 - 在 GIDZipTest GZIP 测试中,您需要单独测试这些文件。

    我想您的 ISP 也有可能使用缓存代理 - 无论是否透明 - 它正在破坏或删除您的 Accept-Encoding: header 。为了排除这个原因,您可以让某人从您的 ISP 外部对其进行测试。

    另一件需要注意的事情是,当使用 gzip 压缩文件时,您是在用带宽换取 CPU 时间。在较低的压缩强度之上,您将看到带宽节省的 yield 递减,但所需的 CPU 时间却大幅增加。不幸的是,压缩强度高达 9,几乎肯定会浪费太多 CPU 时间而几乎没有改进压缩 - 我总是建议使用强度 1。

    关于compression - YSlow 为使用 mod_deflate 压缩的文件提供 F 级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973969/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com