8

YSlowは、私のcssを圧縮する必要があると言っていますが、数時間いじくり回した後、私のWebサイトでgzipを動作させることができません。現時点では、パフォーマンスの向上(あるのでしょうか?)が努力する価値があるかどうかさえわかりません。

1&1共有ホスティングアカウントでWordPressサイトを運営しています。

正直なところ、私はこのようなもので何をしているのか本当にわかりませんし、適切な設定を取得できないようです。1&1で「モジュールApache mod_deflateとmod_gzipがインストールされていない」といくつかの場所で読んだので、これは問題の一部であると思います。

私は次のコードを試しました:

これは何もしていないようです:

<IfModule mod_gzip.c>  
    mod_gzip_on         Yes  
    mod_gzip_dechunk    Yes  
    mod_gzip_item_include file          \.(html?|txt|css|js|php|pl)$  
    mod_gzip_item_include handler       ^cgi-script$  
    mod_gzip_item_include mime      ^text\.*  
    mod_gzip_item_include mime      ^application/x-javascript.*  
    mod_gzip_item_exclude mime      ^image\.*  
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*  
</IfModule>  

これにより500エラーが発生します

<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>

これ(html5ボイラープレートから)も何もしないようです:

<IfModule mod_deflate.c>

  # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>

  # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
  <IfModule filter_module>
    FilterDeclare   COMPRESS
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/x-icon
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
    FilterChain     COMPRESS
    FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
  </IfModule>


  <IfModule !mod_filter.c>
    # Legacy versions of Apache
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
  </IfModule>

</IfModule>

これは何もしていないようです...

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript

ここにあるチュートリアルに従いました

(http://mrrena.blogspot.com/2009/01/how-to-compress-php-and-other-text.html) 

しかし、これは本質的に私のサイトの外観を完全に壊しました。


私のFunctions.phpでこれを試してみたところ、htmlが圧縮されているように見えましたが、一部のjsとcssは圧縮されていません。

if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler"))
    add_action('wp', create_function('', '@ob_end_clean();@ini_set("zlib.output_compression", 1);'));
4

6 に答える 6

7

あなたは選択肢を使い果たしたように私には見えます。上記を見ると、ホストには実際に mod_deflate または mod_gzip がないようです。だから私はあなたが運が悪いと思います。

PHP ソリューションは、実際には HTML 専用です。だから、それに固執してください。ほとんどの場合、CSS と JS は最初のページでのみダウンロードされるため、HTML は圧縮を追加するのに最適な場所でもあります。

PHP スクリプトを使用してリクエストを CSS および JS にリダイレクトし、PHP を使用して圧縮することができます。304 Not modifiedしかし、適切な有効期限ヘッダーを実装して設定する必要があるため、そこには行きません。

于 2012-07-10T20:55:09.483 に答える