当前位置: 首页 > 知识库问答 >
问题:

.htaccess负责gzip编码和缓存,但YSlow在这两个方面都报告了“F”

聂永怡
2023-03-14

我对gzip压缩和缓存等优化技术是新手。在网上做了一些研究之后,我意识到这是可能的。htaccess基于一些apache处理程序。我询问了我的网络主机,想知道mod_deflate和mod_headers库是否存在并且可用

我甚至查过firebug。它显示请求头“Accept Encoding gzip,deflate”,但响应字段中没有“内容编码”。有人能帮我找出哪里出了问题吗?

以下是. htaccess文件的代码

            Options -Indexes
            Options +FollowSymlinks
            RewriteEngine on

            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule . /index.php [L]

            <IfModule mod_deflate.c>
            AddOutputFilterByType DEFLATE application/x-javascript
            AddOutputFilterByType DEFLATE text/css text/html text/plain text/xml
            DeflateCompressionLevel 9
            </IfModule>


            # ----------------------------------------------------------------------
            # Expires headers (for better cache control)
            # ----------------------------------------------------------------------

            # These are pretty far-future expires headers.
            # They assume you control versioning with filename-based cache busting
            # Additionally, consider that outdated proxies may miscache
            # www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

            # If you don't use filenames to version, lower the CSS and JS to something like
            # "access plus 1 week" or so.

            <IfModule mod_expires.c>
              ExpiresActive on

            # Perhaps better to whitelist expires rules? Perhaps.
              ExpiresDefault "access plus 1 month"

            # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
              ExpiresByType text/cache-manifest "access plus 0 seconds"

            # Your document html
              ExpiresByType text/html "access plus 0 seconds"

            # Data
              ExpiresByType text/xml "access plus 0 seconds"
              ExpiresByType application/xml "access plus 0 seconds"
              ExpiresByType application/json "access plus 0 seconds"

            # Feed
              ExpiresByType application/rss+xml "access plus 1 hour"
              ExpiresByType application/atom+xml "access plus 1 hour"

            # Favicon (cannot be renamed)
              ExpiresByType image/x-icon "access plus 1 week"

            # Media: images, video, audio
              ExpiresByType image/gif "access plus 1 month"
              ExpiresByType image/png "access plus 1 month"
              ExpiresByType image/jpg "access plus 1 month"
              ExpiresByType image/jpeg "access plus 1 month"
              ExpiresByType video/ogg "access plus 1 month"
              ExpiresByType audio/ogg "access plus 1 month"
              ExpiresByType video/mp4 "access plus 1 month"
              ExpiresByType video/webm "access plus 1 month"

            # HTC files (css3pie)
              ExpiresByType text/x-component "access plus 1 month"

            # Webfonts
              ExpiresByType application/x-font-ttf "access plus 1 month"
              ExpiresByType font/opentype "access plus 1 month"
              ExpiresByType application/x-font-woff "access plus 1 month"
              ExpiresByType image/svg+xml "access plus 1 month"
              ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

            # CSS and JavaScript
              ExpiresByType text/css "access plus 1 year"
              ExpiresByType application/javascript "access plus 1 year"

            </IfModule>

共有1个答案

戈嘉慕
2023-03-14

您确定主机提供程序已启用这两个模块吗?您是否检查过同一提供商中托管的其他网站?有时小型主机提供商会关闭共享计划上的mod_deflate以节省一些CPU,从而增加共享。

尝试卷曲您网站上的任何js资源,例如:

curl -I "http://yslow.org/yslow-bookmarklet.js" -H "Accept-Encoding: gzip, deflate"

你应该得到类似于:

HTTP/1.1 200 OK
Server: nginx/1.0.13
Date: Wed, 06 Jun 2012 18:31:25 GMT
Content-Type: application/x-javascript
Last-Modified: Fri, 25 May 2012 16:11:28 GMT
Connection: keep-alive
Expires: Thu, 07 Jun 2012 18:31:25 GMT
Cache-Control: max-age=86400
Content-Encoding: gzip

查找内容编码以确保mod_deflate处于启用状态,并且过期缓存控制用于mod_过期。

 类似资料:
  • 到目前为止我们已经介绍了一堆Vim命令,这可以让你可以快速自定义Vim。除了自动命令组外其他的命令都是单行的命令,你可以不费吹灰之力就把它们添加到你的~/.vimrc文件中。 这本书的下一部分我们会开始专注于Vim脚本编程,将其当作一个真正的编程语言对待,不过在此之前,我会先讲一些在编写大量的Vim脚本时需要注意的东西。 注释 Vim脚本非常强大,但对于那些想进入这个领域的程序员而言,在最近几年它

  • 我正在为一位客户建一家商店。现在在产品页面上,有一个下拉列表,您可以选择“标准”或“快递”。 当客户选择此选项时,您可以从本产品中选择所需的金额。 现在我在stackoverflow(Woocommerce get variation product price)上找到了一段代码,可以直接在下拉列表中的金额之后显示正确的价格。这很好用。 但是现在,第一个金额变化(100欧元(22欧元))的价格也显

  • 问题内容: 我有一个带有下拉菜单的Web应用程序,用户可以从中选择报表的类型。report1,report2,report3等。 基于所选的报告,Jasper报告将在服务器上编译并以PDF格式作为弹出窗口打开。 在服务器端,我使用下面的代码(例如对于report1)使用一种单独的方法来实现每个报告: 同样,report2在具有以下代码的单独方法中: 现在,我有一个要求,如果从下拉列表中选择了rep

  • 问题内容: 我正在尝试使用JGit进行HEAD提交: 我发现它可以打开存储库,但值设置为。我不知道为什么找不到HEAD? 我正在阅读此文档:http : //wiki.eclipse.org/JGit/User_Guide 该存储库的构建就像doc所说的一样。我使用的是最新版本的JGit的是从http://download.eclipse.org/jgit/maven。 我的问题:我需要更改我的代

  • 给定一个整数数组nums和一个整数目标,返回两个数字的索引,使它们相加到目标。您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素。你可以按任何顺序返回答案。示例1:输入:nums=[2,7,11,15],目标=9输出:[0,1]解释:因为nums[0]nums[1]==9,我们返回[0,1]。

  • 问题内容: 我用python脚本下载了一个网页。在大多数情况下,这可以正常工作。 但是,这个有一个响应标头:GZIP编码,当我尝试打印此网页的源代码时,它的腻子中包含所有符号。 如何将其解码为普通文本? 问题答案: 我使用zlib从Web解压缩压缩的内容。