2012-06-04 24 views
1

上都報告'F'我是gzip壓縮和緩存等優化技術的新手。在網絡上進行了一些研究之後,我意識到這可以通過基於一些apache處理程序的.htaccess來實現。我曾詢問過我的網站主持人是否知道mod_deflate和mod_headers庫是否存在並可用.htaccess用於gzip編碼和緩存,但YSlow在兩個

我甚至通過螢火蟲進行檢查。它顯示請求頭「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

的代碼,你確定你的主機提供商已經使這兩個模塊?您是否檢查過在同一提供商託管的另一個網站?有時小型主機提供商關閉共享計劃中的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 

查找Content-Encoding確保mod_deflate模塊爲ON,也ExpiresCache-Control for mod_expires